【发布时间】:2012-08-08 04:07:40
【问题描述】:
我正在进行早期研究,以便在使用自定义编写的应用程序引擎实现的系统中用 NHibernate 替换 EF。
客户端创建一个实体,比如 Person,从用户那里获取属性值并将其发送到服务器。在服务器中,我们使用context.CreateObject<Person>() 来获取一个Person 的代理。
然后将属性值应用于代理,我们能够使用延迟加载来访问相关对象。例如,如果这个人有一个属性MajorID 和一个导航属性Major,我们将MajorID 设置为5,如果一个表达式访问Major,正确的Major 会延迟加载到该字段中。更新也会发生类似的过程。
在 NHibernate 中,我没有 CreateOject<>() 方法,所以我拥有的对象没有被代理,因此缺少延迟加载。另外,在更新中,如果我更改 MajorID 然后访问 Major,它仍然指向旧的错误的 Major。
我是 NHibernate 的新手,我可以让它在这种情况下表现得像 EF 吗?
谢谢
【问题讨论】: