三个表: 用户表 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>
T_User_Role 缺少主键,