Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何告诉Fluent NHibernate忽略特定属性而不自动映射?_Vb.net_Nhibernate_Fluent Nhibernate_Nhibernate Mapping_Fluent Nhibernate Mapping - Fatal编程技术网

Vb.net 如何告诉Fluent NHibernate忽略特定属性而不自动映射?

Vb.net 如何告诉Fluent NHibernate忽略特定属性而不自动映射?,vb.net,nhibernate,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Vb.net,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,我正在使用Fluent NHibernate绘制现有数据库。出于这个原因,自动映射不是我的选择 我如何告诉NHibernate不要映射某些属性?其中许多是只读的,其他的由于其他原因不需要持久化 我正在用VB.Net写这篇文章 我收到典型的错误消息: “以下类型不能用作代理 …应为“公共/受保护的虚拟”或“受保护的内部虚拟” 我故意不让我的对象可重写(相当于C#中的虚拟),因为我不希望NHibernate接触它们 如何实现这一点?为了让NHibernate创建动态代理(包括未映射的属性),必须覆盖

我正在使用Fluent NHibernate绘制现有数据库。出于这个原因,自动映射不是我的选择

我如何告诉NHibernate不要映射某些属性?其中许多是只读的,其他的由于其他原因不需要持久化

我正在用VB.Net写这篇文章

我收到典型的错误消息: “以下类型不能用作代理 …应为“公共/受保护的虚拟”或“受保护的内部虚拟”

我故意不让我的对象可重写(相当于C#中的虚拟),因为我不希望NHibernate接触它们


如何实现这一点?

为了让NHibernate创建动态代理(包括未映射的属性),必须覆盖所有属性和方法。这并不意味着NHibernate正在映射您的只读属性,它只是要求这些属性是可重写的,以便生成类的代理。解释要求。

我仍然对一个不太老套的答案感兴趣,但我在这篇文章中找到了一个解决方法:标记为答案的问题只适用于自动映射,而不适用于类映射。但是如果您仔细阅读注释,在底部他们提到的只是使类成为虚拟的(可重写的)。起初,这似乎很奇怪,但最后一条评论提到,只要不尝试映射到该属性,这样做没有负面影响。它只会创建一个永远不会使用的代理。这是一个很好的答案,说明了为什么需要将所有方法(当然还有属性)都虚拟化。这是关于NHibernate的,不是关于FluentNHibernate的。谢谢您的回复。后来别人也告诉我了,但我忘了在这里更新。这很不幸,因为我有未映射的属性,我不想覆盖或更改:-/但是哦,好吧。答案很有用,谢谢。