三个表: 用户表 T_user, 角色表 T_role, 关联表 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>比如说现在我角色表里面已经添加了三条记录:管理员,会员,普通用户
现在我需要添加一个用户 用户的权限是 管理员,该如何添加呢?
我是这样写的var role = _session.Get<Role>(1);//得到的是管理员角色的记录信息
var info = new User { Name = "李四",Roles = new List<Role> { role }};
_session.Save(info);
虽然插入了用户信息,但是关联表T_User_Role没有关联信息,请大家帮忙c#nhibernate
用户表和角色表时多对多的关系 如下图所示
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>比如说现在我角色表里面已经添加了三条记录:管理员,会员,普通用户
现在我需要添加一个用户 用户的权限是 管理员,该如何添加呢?
我是这样写的var role = _session.Get<Role>(1);//得到的是管理员角色的记录信息
var info = new User { Name = "李四",Roles = new List<Role> { role }};
_session.Save(info);
虽然插入了用户信息,但是关联表T_User_Role没有关联信息,请大家帮忙c#nhibernate
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货