Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate Fluent Sqlite强制使用;插入或替换“;_C#_Sqlite_Nhibernate - Fatal编程技术网

C# NHibernate Fluent Sqlite强制使用;插入或替换“;

C# NHibernate Fluent Sqlite强制使用;插入或替换“;,c#,sqlite,nhibernate,C#,Sqlite,Nhibernate,我需要强制NHibernate不要使用典型的INSERTstation,而是使用sqlite的INSERT或REPLACE语句 我知道在ClassMap中使用SqlInsert(“插入或替换…”)是可能的,但是我有100多个实体,我不想为每个映射类添加它 有人知道如何用另一种简单的方法来做吗?插入或替换需要信息哪一列是唯一的,并决定是否应该使用插入或替换。NHibernate中没有内置的机制,因为它太特殊了。最简单的方法是在保存或处理重复密钥异常之前进行查询(ISqlExceptionConve

我需要强制NHibernate不要使用典型的
INSERT
station,而是使用sqlite的
INSERT或REPLACE
语句

我知道在
ClassMap
中使用
SqlInsert(“插入或替换…”)
是可能的,但是我有100多个实体,我不想为每个映射类添加它


有人知道如何用另一种简单的方法来做吗?

插入或替换需要信息哪一列是唯一的,并决定是否应该使用插入或替换。NHibernate中没有内置的机制,因为它太特殊了。最简单的方法是在保存或处理重复密钥异常之前进行查询(ISqlExceptionConverter在此提供帮助)

不执行ISession.SaveOrUpdate执行相同的操作..?不,Insert或Replace在保存之前不读取数据,因此比SaveOrUpdate快得多。