如何告诉 Fluent NHibernate 忽略特定属性而不进行自动映射?
我正在使用 Fluent NHibernate 来映射现有数据库。因此,自动映射不适合我。
我如何告诉 NHibernate 不要映射某些属性?其中许多是只读的,其他的则由于其他原因不需要持久化。
我是用 VB.Net 写的。
我收到典型的错误消息: “以下类型不得用作代理 ...应该是“公共/受保护的虚拟”或“受保护的内部虚拟””
我故意不让我的对象可重写(相当于 C# 中的虚拟),因为我不希望 NHibernate 接触它们。
我怎样才能实现这一点?
I am using Fluent NHibernate to map out an existing database. For this reason - automapping isn't an option for me.
How do I tell NHibernate not to map certain properties? Many of them are read-only, and the others do not need to be persisted for other reasons.
I am writing this in VB.Net.
I get the typical error message:
"The following types may not be used as proxies
... should be 'public/protected virtual' or 'protected internal virtual'"
I have purposely not made my objects Overridable (equivalent to virtual in C#) because I do not want NHibernate to touch them.
How can I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
所有属性和方法都必须是可重写的,以便 NHibernate 创建动态代理,包括未映射的属性。这并不意味着 NHibernate 正在映射您的只读属性,它只是要求它们是可重写的,以便它可以生成该类的代理。 本文解释了这一要求。
All properties and methods must be overridable in order for NHibernate to create dynamic proxies, including unmapped properties. This does not imply that NHibernate is mapping your read-only properties, it just requires them to be overridable so that it can generate a proxy of the class. This article explains the requirement.