Ответ 1
Используйте Table("table_name")
вместо этого.
Я новичок в NHibernate и пытаюсь использовать Fluent для сопоставления. Мое имя класса сущностей отличается от имени таблицы базы данных, к которому он должен быть сопоставлен.
Я использую класс отображения, полученный из ClassMap<>
, но я не могу указать имя таблицы: свойство TableName
из ClassMap
доступно только для чтения.
Спасибо за вашу помощь.
Используйте Table("table_name")
вместо этого.
Работает ли это?
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();
}
}
Приведенный выше пример приведет меня в правильном направлении. Это сработало для меня. Имя моего класса - "Сторона", а мое имя таблицы - "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);
}
}