NHibernate,HiLo等等

我有两个实体, RolePermission ,每个实体在数据库中都有表格,并使用HiLo算法正确设置ID的生成。 这工作正常。 但是,数据库中还有一个表ROLE_PERMISSION_ASSIGNMENT它只包含两个前述表的外键,将实体绑定在一起。 该表在我的应用程序中没有实体对应物。

Role实体的映射如下所示:

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中保存角色 (包含某些权限 )时,它在创建ROLE_PERMISSION_ASSIGNMENT中的相应条目时失败 ,因为它不提供主键。

有没有办法告诉NHibernate使用HiLo算法为ROLE_PERMISSION_ASSIGNMENT生成ID?

非常感谢你。


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

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

链接地址: http://www.djcxy.com/p/19121.html

上一篇: NHibernate, HiLo and many

下一篇: NHibernate Mapping Generator is redundantly defining columns from Oracle