2012-12-13 2 views
3

내가 NHibernate에 일반적인 INSERT 한 Statment를 사용하지하는 강제해야하지만 SQLite는의 INSERT OR REPLACENHibernate에 유창함 SQLite는 힘 사용 "삽입 또는 교체"를

내가 ClassMap<>에 내가 SqlInsert("INSERT OR REPLACE...")를 사용할 것이다 때 가능하다는 것을 알고, 하지만 100 개 이상의 엔티티가 있고 모든 매핑 클래스에 추가하지 않아도됩니다.

누구나 다른 간단한 방법으로 어떻게 할 수 있습니까?

+1

ISession.SaveOrUpdate가 동일한 작업을 수행하지 않습니다 ..? – Davita

+0

아니요, Insert or Replace는 저장하기 전에 데이터를 읽지 않으므로 SaveOrUpdate보다 훨씬 빠릅니다. – Adrian

답변

0

INSERT OR REPLACE는 열이 고유 한 정보가 필요하며 삽입 또는 교체를 사용해야하는지 여부를 결정합니다. 그것이 너무 특별하기 때문에 NHibernate에 대한 내장 메커니즘이 없다. 가장 쉬운 방법은 중복 키를 저장하거나 처리하기 전에 쿼리하는 것입니다. 예외 (ISqlExceptionConverter는 여기에서 도움이됩니다)