如果没有找到任何内容,为什么Session.Load <user>(id)不返回null?</user>

时间:2009-12-28 17:32:28

标签: nhibernate

当我尝试使用以下方法按ID加载实体时:

Session.Load<User>(21);

我得到'没有存在给定标识符的行'。

在我的代码中,我正在检查null,如:

if(user == null)

我怎么想知道该行是否不存在,或者如何让它返回null?

2 个答案:

答案 0 :(得分:7)

因为它实际上并没有对数据库进行往返。实际上你正在为延迟加载找回代理,因此NHibernate无法知道它是否真的存在。如果你需要知道是否真的存在,你应该使用:

var entity = Session.Get(21)

答案 1 :(得分:2)