首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate,HiLo和多对多协会

NHibernate,HiLo和多对多协会
EN

Stack Overflow用户
提问于 2011-06-29 16:30:44
回答 1查看 298关注 0票数 1

我有两个实体,角色权限,每个实体在数据库中都有其表,并使用HiLo算法正确设置ID生成。这个很好用。但是,数据库中还有一个表,ROLE_PERMISSION_ASSIGNMENT,只包含前面提到的两个表的外键,将实体绑定在一起。此表在我的应用程序中没有相应的实体。

角色实体的映射如下所示:

代码语言:javascript
复制
public class RoleMap : ClassMap<Role>
{
    public RoleMap()
    {
        Table("\"ROLE\"");
        LazyLoad();            
        Id(x => x.Id, "id").GeneratedBy.HiLo("hilo", "hilo_role", "50");           
        Map(x => x.Name).Column("name");
        HasManyToMany<Permission>(x => x.Permissions)
           .Table("\"ROLE_PERMISSION_ASSIGNMENT\"")
           .ParentKeyColumn("fk_id_role")
           .ChildKeyColumn("fk_id_permission")
           .Cascade.None();
    }
}

由于我没有ROLE_PERMISSION_ASSIGNMENT表的实体,所以无法指定生成ID的方式,因此在保存角色(在DB中包含一些Permissions) )时,它在ROLE_PERMISSION_ASSIGNMENT,中创建相应条目时失败,因为它没有提供主键。

是否有一种方法可以告诉ROLE_PERMISSION_ASSIGNMENT NHibernate为HiLo算法生成Is?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-30 12:50:36

您需要将该关联映射为idbag,这完全符合您的要求(参见http://www.nhforge.org/doc/nh/en/index.html#collections-idbag)

我不认为Fluent支持它;为此您必须混合使用XML映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6524064

复制
相关文章

相似问题

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