我试图使用Fluent与nHinbernate的自动化功能来映射一个名称与表名不同的类。
(这纯粹是出于文体的原因,我们有一个名为Foo的类,它包含一个名为Bar的对象,但表名是FooBar。我们宁愿没有属性Foo.FooBar。)
我找不到任何详细说明如何给Fluent提供这一变化的线索。
答案 0 :(得分:7)
使用classmap,您可以在mapping中指定表名。
public class BarMap : ClassMap<Bar>
{
public BarMap()
{
Table("FooBar");
}
}
使用automap,您可以覆盖表名。
.Mappings( m => m.AutoMappings.Add( AutoMap.AssemblyOf<Bar>()
.Override<Bar>( b => {
b.Table("FooBar");
}))
您还可以使用conventions来影响所有实体的表命名。
答案 1 :(得分:2)
您可以在映射中指定表名。所以它看起来像这样:
public class FooMap : ClassMap<Foo>
{
Table("FooBar");
// Rest of your mapping goes here.
}