Свободно: Имя таблицы отличается от имени объекта - PullRequest
3 голосов
/ 25 марта 2010

Я пытаюсь использовать функцию автоматического сопоставления Fluent с nHinbernate, чтобы отобразить класс с именем, отличным от имени самой таблицы.

(Это чисто по стилистическим соображениям у нас есть класс с именем Foo, который содержит объект с именем Bar, но имя таблицы - FooBar. Мы бы не хотели иметь свойство Foo.FooBar.)

Я не могу найти ничего детального, как дать Fluent подсказку об этом изменении.

Ответы [ 2 ]

7 голосов
/ 25 марта 2010

С помощью 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");
}))

Вы также можете использовать соглашений , чтобы влиять на именование таблиц всех сущностей.

2 голосов
/ 25 марта 2010

Вы можете указать имя таблицы в отображении. Так это будет выглядеть примерно так:

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

  // Rest of your mapping goes here.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...