Как указать имя таблицы в классе Fluent NHibernate ClassMap? - PullRequest
34 голосов
/ 11 марта 2009

Я новичок в NHibernate и пытаюсь использовать Fluent для картирования. Имя моего класса сущности отличается от имени таблицы базы данных, в которое оно должно быть отображено. Я использую класс сопоставления, полученный из ClassMap<>, но не могу указать имя таблицы: свойство TableName из ClassMap доступно только для чтения.

Спасибо за вашу помощь.

Ответы [ 3 ]

43 голосов
/ 11 марта 2009

Используйте Table("table_name") вместо.

6 голосов
/ 18 октября 2011

Приведенный выше пример ведет меня в правильном направлении. Это сработало для меня. Мой класс называется «Вечеринка», а имя таблицы - «prty.Party».

public class PartyMap : ClassMap<Party>
{
    public PartyMap()
    {
     Table("prty.Party");
     Id(x => x.PartyID);
     Map(x => x.PartyTypeLID);
     Map(x => x.OrganizationTypeLID);
     Map(x => x.PreferredContactMethodLID);
     Map(x => x.PrimaryLanguageLID);
     Map(x => x.PartyVID);
     Map(x => x.BeginDate);
     Map(x => x.EndDate);
     Map(x => x.RowDescriptor);
     Map(x => x.RowModifiedDate);
     Map(x => x.RowModifiedBy);
     Map(x => x.RowCreatedDate);
     Map(x => x.RowCreatedBy);
    }        
}
6 голосов
/ 24 февраля 2011

Как это работает?

public class UserAccountMap : ClassMap<UserAccount> {
    public UserAccountMap() {
        Table("User");
        Id(x => x.UserID, "UserID").GeneratedBy.Identity();
        Map(x => x.FirstName, "FirstName").Length(50)
            .Not.Nullable();
        Map(x => x.LastName, "LastName").Length(50)
            .Not.Nullable();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...