2012-12-13 34 views
3

我需要強制的NHibernate的不使用典型INSERT statment,但源碼的INSERT OR REPLACE聲明NHibernate的流利sqlite的力用「插入或更換」

我知道這是可能的,當在ClassMap<>我會用SqlInsert("INSERT OR REPLACE..."),但我有超過100個實體,我不會爲每個映射類添加它。

有沒有人有一個想法如何以另一種簡單的方式做到這一點?

+1

不是ISession.SaveOrUpdate做同樣的事情..? – Davita

+0

否,插入或替換不會在保存前讀取數據,所以它比SaveOrUpdate快得多。 – Adrian

回答

0

INSERT OR REPLACE需要哪些列是唯一的信息,並決定是否應該使用插入或替換。在NHibernate中沒有內建機制,因爲它太特殊了。最簡單的方法是在保存或處理重複鍵之前查詢異常(ISqlExceptionConverter幫助這裏)