Get<T>(object id)和之间有什么区别Load<T>(object id)?文档几乎都是一样的.此外,如果重要,在什么情况下我应该使用一个而不是另一个?
Lor*_*zCK 41
Brian提供的参考文献非常清楚地解释了它.但是,主要区别在于Load 没有命中数据库来检查和加载您需要的实体,因为它假定您知道实体存在.返回的对象Load是某种代理,在需要时懒惰地获取实际数据,或者如果找不到实体则抛出异常.
概括:
Load当您确定存在具有特定ID的实体时,应使用此选项.该调用不会导致数据库命中(因此在某些情况下可以通过NHibernate进行优化).请注意,如果DB中不存在实体实例,则在访问对象时可能引发异常.
Get命中数据库或会话高速缓存以检索实体数据.如果实体存在则返回,否则null将返回.这是确定具有特定ID的实体是否存在的最安全的方法.如果您不确定要使用什么,请使用Get.
Bri*_*den 10
如果请求的对象不存在,则Get将返回null.如果请求的对象不存在,Load将抛出异常.否则,就我所知,它们的功能完全相同.
| 归档时间: |
|
| 查看次数: |
12766 次 |
| 最近记录: |