为什么没有找到任何东西Session.Load (id)返回null?

问题描述:

当我尝试并使用由ID加载的实体:为什么没有找到任何东西Session.Load <User>(id)返回null?

Session.Load<User>(21); 

我收到了“具有给定标识符的行存在”。

在我的代码,我检查像空:

if(user == null) 

我怎么想知道,如果该行不存在,或者我怎么可以让它返回null呢?

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

var entity = Session.Get(21) 
+1

我做的是:返回Session.Load (ID);哎呀,好吧,只是读你写的GET。谢谢! – mrblah 2009-12-28 17:39:06