当我尝试使用以下方法按ID加载实体时:
Session.Load<User>(21);
我得到'没有存在给定标识符的行'。
在我的代码中,我正在检查null,如:
if(user == null)
我怎么想知道该行是否不存在,或者如何让它返回null?
答案 0 :(得分:7)
因为它实际上并没有对数据库进行往返。实际上你正在为延迟加载找回代理,因此NHibernate无法知道它是否真的存在。如果你需要知道是否真的存在,你应该使用:
var entity = Session.Get(21)
答案 1 :(得分:2)
使用Get<T>(id)
(more detailed explanation about NH get/load/query)