首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Fluent nHibernate映射问题

Fluent nHibernate映射问题
EN

Stack Overflow用户
提问于 2011-07-07 09:52:56
回答 1查看 828关注 0票数 0

我有一个DB和下面的表格

  • 用户
  • 角色
  • UserInRoles (用于多到多关系的用户和角色的桥接表
  • 模块
  • ModulePermission (这包括角色和模块的PK和一个bool字段来标识角色是否具有访问模块的权限)

现在,我对fluent nHibernate中这些表的映射感到困惑,我按照在Fluent nHibernate Wiki站点中定义的方式进行了映射,但得到了以下错误:

(XmlDocument)(3,6):XML验证错误:名称空间‘urn:nhibernate-映射-2.2’中的元素‘复合-id’具有不完整的内容。名称空间‘urn:nhibernate-映射-2.2’中的可能元素列表:'meta,key-property,key-多-to-one‘。

制图: UserMap:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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");
    }
}

有人知道这是怎么回事吗?

谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2011-07-07 10:54:28

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

代码语言:javascript
运行
复制
HasManyToMany(user => user.RolesOfUser)
    .Table("UserInRoles")
    .ParentKeyColumn("UserID")
    .ChildKeyColumn("RoleID");
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6608716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档