我有一张包含以下表格的数据库
现在我在流畅的nHibernate中对这些表的映射感到困惑,我在Fluent nHibernate Wiki site中定义了映射,但是出现了这个错误:
(XmlDocument)(3,6):XML验证 错误:元素'composite-id' namespace'瓮:nhibernate-mapping-2.2' 内容不完整。清单 可能的元素:'meta, key-property,key-many-to-one'in 命名空间 '瓮:NHibernate的映射-2.2'
映射: 用户映射:
public class UserMap : ClassMap<User>
{
public UserMap()
{
Table("tblUsers");
LazyLoad();
Id(user => user.UserID).GeneratedBy.GuidComb();
Map(user => user.UserName).Not.Nullable();
Map(user => user.Password).Not.Nullable();
Map(user => user.IsActive).Nullable();
HasManyToMany(user => user.RolesOfUser).Cascade.All().Inverse().Table("UserInRoles");
}
}
RoleMap:
public class RoleMap : ClassMap<Role>
{
public RoleMap()
{
Table("tblRoles");
Id(role => role.RoleID).GeneratedBy.Identity();
Map(role => role.RoleName).Not.Nullable();
Map(role => role.IsActive).Not.Nullable();
Map(role => role.Description).Not.Nullable();
HasManyToMany(role => role.Users).Cascade.All().Table("UserInRoles");
}
}
有谁知道这是什么问题?
由于
答案 0 :(得分:3)
HasManyToMany映射配置对我有用。你可以这样做:
HasManyToMany(user => user.RolesOfUser)
.Table("UserInRoles")
.ParentKeyColumn("UserID")
.ChildKeyColumn("RoleID");