我是 NHibernate 的新手并尝试使用 Fluent 进行映射。我的实体类名称与它必须映射到的数据库表名称不同。我正在使用从 派生的映射类ClassMap<>
,但我无法指定表名:属性TableName
fromClassMap
是只读的。
谢谢你的帮助。
我是 NHibernate 的新手并尝试使用 Fluent 进行映射。我的实体类名称与它必须映射到的数据库表名称不同。我正在使用从 派生的映射类ClassMap<>
,但我无法指定表名:属性TableName
fromClassMap
是只读的。
谢谢你的帮助。
改为使用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();
}
}
上面的例子引导我朝着正确的方向前进。这对我有用。我的班级名称是“Party”,我的表名是“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);
}
}