Fluent nhibernate FluentNHibernate中的私有字段

Fluent nhibernate FluentNHibernate中的私有字段,fluent-nhibernate,Fluent Nhibernate,我已将Fluent NHibernate配置为映射项目中的实体。我的实体中没有一个公开公共属性(除了它们的Id),它们的所有数据都存储在私有字段中 通过使用: public override bool ShouldMap(Member member) { return member.Name == "Id" || (member.IsPrivate && member.IsField); } 它成功地找到了我的字段,但希望我的数据库列被称为_emailAddress之

我已将Fluent NHibernate配置为映射项目中的实体。我的实体中没有一个公开公共属性(除了它们的Id),它们的所有数据都存储在私有字段中

通过使用:

public override bool ShouldMap(Member member)
{
     return member.Name == "Id" || (member.IsPrivate && member.IsField);
}
它成功地找到了我的字段,但希望我的数据库列被称为_emailAddress之类的东西

我怎样才能将emailAddress映射到一个名为emailAddress的列?我的SessionFactory初始化如下所示:

    Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.FromConnectionStringWithKey("AppConnection")))
.Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<User>(new NHibMappingConfiguration())
    .Conventions.Add(DefaultAccess.CamelCaseField(CamelCasePrefix.Underscore))))
.CurrentSessionContext("web")

.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
流利。配置()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c=>c.fromConnectionString WithKey(“AppConnection”))
.Mappings(m=>m.AutoMappings.Add(AutoMap.AssemblyOf(新的NHibMappingConfiguration())
.Conventions.Add(DefaultAccess.CamelCaseField(CamelCasePrefix.下划线)))
.CurrentSessionContext(“web”)
.ExposeConfiguration(构建架构)
.BuildSessionFactory();
使用默认的访问约定

谢谢,
马特

我想你有两个选择。
1.您可以创建自己的列命名约定(使用InAdmingConvention界面。请参阅)。
2.您可以为各个类创建MappingOverride类,并为每个类定义列名:

mapping.Map(x => x.Name).Column("MyColumnName");

我认为您有两种选择。
1.您可以创建自己的列命名约定(使用InAdmingConvention界面。请参阅)。
2.您可以为各个类创建MappingOverride类,并为每个类定义列名:

mapping.Map(x => x.Name).Column("MyColumnName");

谢谢,这里的第一个选择对我很有效。似乎应该有一个更简单的方法,但这成功了谢谢!谢谢,这里的第一个选择对我很有效。似乎应该有一个更简单的方法,但这成功了谢谢!