我发现自己编写了如下代码:
if (myEntity.Id == default(Guid))
Session.Save(myEntity);
检查实体是否已经持久化(因此不需要保存)的最佳方法是什么?
我在编写这样的代码时做错了吗?
答案 0 :(得分:5)
这就是我所做的,除了我通常在执行此检查的基类或扩展中使用IsNew()或IsTransient()方法。然后代码变为:
public Boolean IsTransient(){
return this.Id == default(Guid);
}
不要忘记Session.SaveOrUpdate(entity)方法将导致持久化实体的更新(而不是插入),因此您可以使用此方法并忽略该检查。我喜欢做检查。