사용할 수 here, 나는이 방법을 사용하는 쿼리 검사 NHProf를 사용할 때 :NHibernate Linq는 암시 적 트랜잭션을 사용합니까?
public IQueryable<T> GetAll()
{
return Session.Linq<T>();
}
그것은 나에게 내가 암시 적 트랜잭션을 사용하고 경고를 제공을 . 문제는, 나는 이것을 데이터베이스 세션을 추상화하기 위해 저장소에서 사용하고 있지만 원하는 Linq 쿼리를 실행할 수 있도록 IQueryable을 반환하는 유연성을 원합니다. 명시 적으로 트랜잭션을 노출하지 않고 Session.Linq<T>()
을 래핑하는 방법이 있습니까? 아니면이 경우 경고를 무시해야합니까?
조금 더 배경. 그래서 같은 방법을 사용하고 있습니다 :
var repo = new Repository();
var animals = repo.GetAll<Animal>().Where(x => x.Size > 100);
NoahsArk.LargeAnimals.AddRange(animals);
현명한 구현! –
감사. 또한 효율성을 높이기 위해 단일 트랜잭션에서 데이터베이스에 대해 여러 명령문을 실행할 수 있습니다. 내 실제 구현은 트랜잭션 형식 매개 변수를 사용하여 트랜잭션 등방성 수준을보다 잘 제어 할 수 있다는 점에서 약간 더 복잡하며 NH에서 추상화하고 있습니다. –