Fluent-nHibernate映射问题

Fluent-nHibernate映射问题,nhibernate,orm,fluent-nhibernate,nhibernate-mapping,Nhibernate,Orm,Fluent Nhibernate,Nhibernate Mapping,我有一个DB,它包含以下表格 使用者 角色 UserInRoles(多对多关系中用户和角色的桥接表 模块 ModulePermission(这包括角色和模块的PK以及一个bool字段,用于标识角色是否具有访问模块的权限 现在我对fluent nHibernate中这些表的映射感到困惑,我按照中的定义进行了映射,但得到了以下错误: (XmlDocument)(3,6):XML验证 错误:中的元素“复合id” 命名空间“urn:nhibernate-mapping-2.2” 包含不完整的内容。列

我有一个DB,它包含以下表格

  • 使用者
  • 角色
  • UserInRoles(多对多关系中用户和角色的桥接表
  • 模块
  • ModulePermission(这包括角色和模块的PK以及一个bool字段,用于标识角色是否具有访问模块的权限
现在我对fluent nHibernate中这些表的映射感到困惑,我按照中的定义进行了映射,但得到了以下错误:

(XmlDocument)(3,6):XML验证 错误:中的元素“复合id” 命名空间“urn:nhibernate-mapping-2.2” 包含不完整的内容。列表 预期的可能因素:, 键属性,在中键多对一 名称空间 “urn:nhibernate-mapping-2.2”

映射: 用户地图:

公共类用户映射:类映射
{
公共用户映射()
{
表(“tblUsers”);
懒散的负荷();
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”);
}
}
角色地图:

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");
    }
}
公共类角色映射:类映射
{
公共角色映射()
{
表(“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”);
}
}
有人知道问题出在哪里吗


当我定义父键列和子键列时,感谢HasManyToMany映射配置为我工作。您可以这样做:

HasManyToMany(user => user.RolesOfUser)
    .Table("UserInRoles")
    .ParentKeyColumn("UserID")
    .ChildKeyColumn("RoleID");

当我定义父键列和子键列时,HasManyToMany映射配置对我有效。您可以这样做:

HasManyToMany(user => user.RolesOfUser)
    .Table("UserInRoles")
    .ParentKeyColumn("UserID")
    .ChildKeyColumn("RoleID");

已添加角色n用户的映射。我建议您将hbm.xml文件写入文件夹以发现映射问题!查看此处:已添加角色n用户的映射。我建议您将hbm.xml文件写入文件夹以发现映射问题!查看此处: