FluentNHibernate中的私有字段

时间:2011-05-07 20:58:13

标签: fluent-nhibernate

我已将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();

显然使用默认访问约定。

谢谢, 马特

1 个答案:

答案 0 :(得分:1)

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

mapping.Map(x => x.Name).Column("MyColumnName");
相关问题