Mic*_*lGG 18 nhibernate f# fluent-nhibernate
我有一些实体类型,我想懒惰加载.但是,它们有一些内部(汇编)字段,但不在该类之外使用.这些字段是编译器生成的(F#),我无法更改它们.示例例外是:
NHibernate.InvalidProxyTypeException:以下类型不能用作代理:Mappings.MTest:field id @ 47不应该是公共的也不是内部的
我理解为什么NHibernate会这样做,以及如果有字段,如果我访问它们会弄乱生成的代理的延迟加载属性.但是,既然我知道我不会使用这些字段,我能以某种方式覆盖NHibernate吗?
有什么方法可以说"忽略这个领域"吗?我正在使用Fluent NHibernate,如果这样可以更容易.
编辑:我还应该注意,我正在使用NHibernate 2.1.0 Alpha 2.
Edit2:这里的主要要点是我想保持LazyLoading,这意味着我必须使用代理生成.禁用LazyLoading工作(没有代理),但sorta失败了像NHibernate这样的好框架的目的.
Mic*_*lGG 17
我重新组装了NHibernate(比获取源代码和重建更容易)并删除了内部/公共字段上的错误代码.如果没有检查,LazyLoading似乎工作得很好.(虽然,我是NHibernate的新手,所以可能有一些我不知道的情况.)
编辑: 啊,有一个属性,"use_proxy_validator"将禁用所有验证检查.够好了.
Fluently.Configure()
.ExposeConfiguration(fun cfg ->
cfg.Properties.Add("use_proxy_validator", "false"))...
Run Code Online (Sandbox Code Playgroud)
小智 5
只需将lazy属性设置为false,
<class name="OrderLine" table="OrderLine" lazy="false" >
Run Code Online (Sandbox Code Playgroud)
你可以阅读更多内容:NHibernate必须虚拟一切吗?- http://davybrion.com/blog/2009/03/must-everything-be-virtual-with-nhibernate/
Ofir,www.TikalK.com
| 归档时间: |
|
| 查看次数: |
11289 次 |
| 最近记录: |