我试图在VB.NET中使用Fluent NHibernate映射Read Only属性。但是所有访问策略都依赖于C#的区分大小写(即它们需要相同的字段名称)。但由于VB.NET不区分大小写,因此无效。因此,我的下一个计划是为Fluent NHibernate创建一个自定义访问器策略,该策略查找具有相同名称并带有下划线的字段。
我还没有找到关于如何定义此规则的任何文档。所以我正在寻找如何为映射定义自定义访问器规则,或者解决此问题的任何其他替代方法?
我的属性设置如下:
Private _Test As String
Public Overridable ReadOnly Property Test As String
Get
Return _Test
End Get
End Property
Fluent为这种情况提供的唯一相关访问策略是:
ReadOnlyPropertyThroughCamelCaseField
ReadOnlyPropertyThroughLowerCaseField
ReadOnlyPropertyThroughPascalCaseField
但这些都取决于该字段与VB.NET中不可能的属性相同。我可能会遗漏一些关于这些工作方式的微不足道的事情......
答案 0 :(得分:0)
最后,没有必要使用访问修饰符,或者通过字段。我只需要将其映射为ReadOnly
,它就能够自动选择存储数据时使用的正确字段。
出于某种原因,我的印象是ReadOnly
只会使它成为如果设置了列就不会写入数据库。但显然它也可以选择VB.NET中标记为ReadOnly
的属性。
我对该字段的最终映射只是:
Map(Function(c) c.Test).ReadOnly()