首页 新闻 会员 周边 捐助

Nhibernate 多对多关系 添加问题

0
悬赏园豆:15 [待解决问题]

三个表: 用户表 T_user, 角色表 T_role, 关联表 T_User_Role
用户表和角色表时多对多的关系 如下图所示

现在我需要添加一个用户 用户的权限是 会计,该如何添加呢?
我是这样写的

var role = _session.Get<Role>(4);//得到的是会计角色的记录信息
          
 var info = new User { Name = "李四",Roles = new List<Role> { role }};   
                   
_session.Save(info);

结果是只是在user表中插入了一条记录,而关联表 T_User_Role没有插入关联信息,不知道哪里有问题 请大家帮忙,一些代码如下

public  class User
    {
        public virtual int? ID { get; set; }

        public virtual string Name { get; set; }

        public virtual IList<Role> Roles { get; set; }

    }
public class Role
    {
       public virtual int? ID { get; set; }

        public virtual string Name { get; set; }
}


<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DomainModel" namespace="DomainModel">
  <class name="DomainModel.Entities.User,DomainModel" table="T_User" lazy="true" >
    <id name="ID" type="int" column="UserID">
      <generator class="native"/>
    </id>

    <property name="Name" type="string">
      <column name="Name" length="50"/>
    </property>

    <bag name="Roles" table="T_User_Role" cascade="save-update" >
      <key column="UserID"/>
      <many-to-many class="DomainModel.Entities.Role,DomainModel" column="RoleID"/>
    </bag>

  </class>

</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DomainModel" namespace="DomainModel">
  <class name="DomainModel.Entities.Role,DomainModel" table="T_Role" lazy="true" >
    <id name="ID" type="int" column="RoleID">
      <generator class="native"/>
    </id>

    <property name="Name" type="string">
      <column name="Name" length="50"/>
    </property>   
  </class>
</hibernate-mapping>
study_hard_01的主页 study_hard_01 | 初学一级 | 园豆:126
提问于:2013-03-15 15:12
< >
分享
所有回答(2)
0

Nhibernate 和  Entitry to framework 在处现多表对多表的映射时,很纠结。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-03-15 16:33
0

T_User_Role 缺少主键,

geass.. | 园豆:1821 (小虾三级) | 2013-03-15 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册