C# 知道元素是否已保存或更新

C# 知道元素是否已保存或更新,c#,database,sqlite,nhibernate,C#,Database,Sqlite,Nhibernate,我试图弄明白这一点,但到目前为止我还没有找到任何合适的答案。 我正在用C#编写一个SQLite DB应用程序,在某一点上我使用session.SaveOrUpdate(object)将元素保存到DB或更新它 但是,根据已完成的操作(保存或更新),我需要执行不同的操作,因此我的问题是,是否有办法使用SaveOrUpdate方法知道对象是第一次保存还是已更新 提前谢谢 ASaveOrUpdate方法无效,因此,我们必须在代码中进行检查。见: 我们应该在映射中提供设置未保存的值: NHibernat

我试图弄明白这一点,但到目前为止我还没有找到任何合适的答案。 我正在用C#编写一个SQLite DB应用程序,在某一点上我使用
session.SaveOrUpdate(object)
将元素保存到DB或更新它

但是,根据已完成的操作(保存或更新),我需要执行不同的操作,因此我的问题是,是否有办法使用SaveOrUpdate方法知道对象是第一次保存还是已更新


提前谢谢

A
SaveOrUpdate
方法无效,因此,我们必须在代码中进行检查。见:

我们应该在映射中提供设置
未保存的值

NHibernate将“新”(未保存)实例与“现有”实例区分开来 (在上一个会话中保存或加载)实例的值 它们的标识符(或版本或时间戳)属性。这个 的未保存值属性(或
,或
) 映射指定应将哪些值解释为表示 “新”实例

<id name="Id" type="Int64" column="uid" unsaved-value="0">
    <generator class="hilo"/>
</id>

感谢Radim,我认为即使SaveOrUpdate是一个无效的方法,它也可能是会话变量中的某个属性,可以说明最后一个操作是保存还是更新。。。但正如你所说,我必须“手动”检查发生了什么
entity.ID == default(int);