2011-09-09 2 views
3

다른 상태로 일부 상태가있는 테이블의 모든 행을 업데이트하고 싶습니다. Nhibernate에서 리포지토리 패턴을 사용하고 있습니다. 내 리포지토리에 Iqueryable<T>이라는 메서드가 있습니다.레코드 업데이트 Nhibernate 및 Iqueryable

그래서 어떻게 that.I에 대한 업데이 트를 작성합니까 모든 요소를 ​​얻으려면, 목록으로 변환하고 그것을 업데이 트하고 싶지 않아. 사실 나는 심지어 Nhibernate 날 행 목록을 선택 싶지 않아. DB에서 값을 제공하는 update 명령문 만 실행하면됩니다.

그래서 내가 어떻게 내가 그 acheive 수 있습니다 ..

답변

2

는 자 NHibernate는 HQL을 통해 일괄 업데이트의 유형을 지원합니다. http://www.nhforge.org/doc/nh/en/index.html#batch-direct을 참조하십시오. 이것의 라인을 따라 뭔가를 시도해보십시오 ...

+0

의미가 있습니다.하지만 나는 가지고 있지 않은 ThingRepository에서 내 세션을 참조해야합니다. 내 저장소에만 있습니다 .... –

+2

안녕하세요 애슐리, 정답입니다. 나는 당신이 IQueryable을 업데이트하고자하는 것에 대해 말하는 것을 보았지만, SQL 업데이트에 대한 요점을 놓치고 있습니다. IQueryable은 지연된 "select"문입니다. 갱신은 스칼라 호출, 쓰기 전용 조작입니다. 정말 IQueryable 업데이트를 호출하려면 확장 메서드를 작성할 수 있지만 세션에 액세스해야하며 가능하면 IQueryable을 실행할 수도 있습니다. (사소한 작업이 아닌 식 트리를 검사하지 않는 한) – andy