NHibernate:为什么field.camelcase?

Fra*_*ois 4 nhibernate camelcasing nhibernate-mapping

有人可以告诉我为什么NHibernate映射我们可以设置access="field.camelcase",因为我们有access="field"access="property"

编辑:我的问题是"为什么我们能做到这一点",而不是"它是什么意思".我认为这可能是开发人员的错误来源.

Rog*_*ger 5

我想你想知道field.camelcase在我们只用字段做同样的事情时会有什么用?这是真的,但是当例如编写查询或从其他映射引用属性时,这会给(NH)属性带来不明确的名称.

假设您想要使用该字段进行映射,例如

private string _name;
public string Name { get { return _name; } }
Run Code Online (Sandbox Code Playgroud)

您确定可以使用"field"映射字段,但是在编写HQL查询时您必须编写"_name".

select a from Foo a where a._name = ...
Run Code Online (Sandbox Code Playgroud)

如果您改为使用field.camelcase数据,则相同的查询将如下所示

select a from Foo a where a.Name...
Run Code Online (Sandbox Code Playgroud)

编辑 我现在看到你写了"field.camelcase",但我的答案是关于"field.camelcase-underscore".原则是一样的,我想你明白了;)