流畅的NHibernate自定义访问策略命名约定

时间:2014-06-09 15:51:05

标签: .net vb.net nhibernate fluent-nhibernate

我试图在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中不可能的属性相同。我可能会遗漏一些关于这些工作方式的微不足道的事情......

1 个答案:

答案 0 :(得分:0)

最后,没有必要使用访问修饰符,或者通过字段。我只需要将其映射为ReadOnly,它就能够自动选择存储数据时使用的正确字段。

出于某种原因,我的印象是ReadOnly只会使它成为如果设置了列就不会写入数据库。但显然它也可以选择VB.NET中标记为ReadOnly的属性。

我对该字段的最终映射只是:

Map(Function(c) c.Test).ReadOnly()