在NHibernate中使用Save / Delete / SaveOrUpdate的受影响的行

时间:2012-09-11 11:48:23

标签: c# nhibernate orm ado.net

我有一个使用Nhibernate的应用程序,我正在实现一个Repository Pattern。我想知道是否有任何方法可以获取受影响的行数并将其返回给存储库用户,就像我们在Ado.Net Providers中找到ICommand.ExecuteNonQuery一样。我的代码如下所示:

   public int Save(T entity) 
   {
       session.Save(entity);
       return ???
   }

   public int Delete(T entity) 
   {
       session.Delete(entity);
       return ???
   }

谢谢

1 个答案:

答案 0 :(得分:1)

在你的代码中,如果行数不是1,NHibernate将抛出异常(在你的2个案例中 - 无论如何当你刷新会话时),所以你可以从你的删除和保存方法中返回1 - 当然这使返回的行数毫无意义。为什么要返回行数?如果要检查NHibernate是否正在做它想要做的事情(即更新1行或删除1行),我建议相信该工具可以完成它的工作...