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