Fluent:表名与实体名不同

发布于 2024-08-26 12:00:36 字数 190 浏览 8 评论 0原文

我正在尝试使用 Fluent 与 nHinbernate 的自动映射功能来映射一个名称与表本身名称不同的类。

(这纯粹是出于风格原因,我们有一个名为 Foo 的类,其中包含一个名为 Bar 的对象,但表名称为 FooBar。我们宁愿没有属性 Foo.FooBar。)

我找不到任何详细说明如何为 Fluent 提供有关此更改的线索。

I am trying to use the automapping feature of Fluent with nHinbernate to map a class with a different name than the table itself is name.

(This is purely for stylistic reasons we have a class named Foo which contains an object named Bar but the table name is FooBar. We would rather not have a property Foo.FooBar.)

I can't find anything detailing how to give Fluent a clue on this change.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月蹉跎了容颜 2024-09-02 12:00:41

使用类映射,您可以在映射中指定表名称。

public class BarMap : ClassMap<Bar>
{
    public BarMap()
    {
        Table("FooBar");
    }
}

使用自动映射,您可以覆盖表名称。

.Mappings( m => m.AutoMappings.Add( AutoMap.AssemblyOf<Bar>()
    .Override<Bar>( b => {
        b.Table("FooBar");
}))

您还可以使用约定来影响所有实体的表命名。

With classmap you can specify the table name in the mapping.

public class BarMap : ClassMap<Bar>
{
    public BarMap()
    {
        Table("FooBar");
    }
}

With automap you can override the table name.

.Mappings( m => m.AutoMappings.Add( AutoMap.AssemblyOf<Bar>()
    .Override<Bar>( b => {
        b.Table("FooBar");
}))

You can also use conventions to affect table naming of all entities.

木槿暧夏七纪年 2024-09-02 12:00:41

您可以在映射中指定表名称。所以它看起来像这样:

public class FooMap : ClassMap<Foo>
{
  Table("FooBar");

  // Rest of your mapping goes here.
}

You can specify the table name in the mapping. So it will look something like this:

public class FooMap : ClassMap<Foo>
{
  Table("FooBar");

  // Rest of your mapping goes here.
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文