NHibernate多对多映射关系怎么不出来啊
我有两个表 User 和RoLeUser表
public class User
{
public virtual string Account { get; set; }
public virtual string Password { get; set; }
public virtual string Name { get; set; }
public virtual int Sex { get; set; }
public virtual int Age { get; set; }
public virtual DateTime Birthday { get; set; }
public virtual string Telphone { get; set; }
public virtual IList<Role> Roles { get; set; }
}
Role表
public class Role
{
public virtual string Number { get; set; }
public virtual string RoleName { get; set; }
public virtual string Remark { get; set; }
public virtual IList<User> Users { get; set;}
}
他们中间的表
RoleMember
{
public class RoleMember
{
public virtual string UserNumber { get; set; }
public virtual string RoleNumber { get; set; }
}
}
映射文件
<!-- 用户 -->
<class name ="SCYZ.Domain.User.User,SCYZ.DLL" table="t_b_user">
<id name="Account" column="FUSERNUMBER">
</id>
<property name ="Name" column="FNAME"/>
<property name ="Password" column="FPASSWORD"/>
<property name ="Sex" column="FSEX"/>
<property name ="Age" column="FAGE"/>
<property name="Birthday" column="FBIRTHDAY"/>
<property name ="Telphone" column="FTELPHONE"/>
<bag name="Roles" table="T_ROLEMEMBER" cascade="all">
<key column="FUSERNUMBER"/>
<many-to-many class="SCYZ.Domain.User.Role,SCYZ.DLL" column="FROLENUMBER"/>
</bag>
</class>
<!-- 角色 -->
<class name="SCYZ.Domain.User.Role,SCYZ.DLL" table="t_b_role">
<id name="Number" column="FROLENUMBER">
</id>
<property name="RoleName" column="FROLENAME" />
<property name="Remark" column="FREMARK" />
<bag name="Users" table="T_ROLEMEMBER" cascade="all">
<key column="FROLENUMBER"/>
<many-to-many class="SCYZ.Domain.User.User,SCYZ.DLL" column="FUSERNUMBER"/>
</bag>
</class>
映射好了怎么没结果出来啊 查询的时候不报错 但是也不显示结果啊 那位大神教教我啊 新手 --------------------编程问答-------------------- 查询语句是这样写的 public Role GetByNumber(string Number)
{
using (ISession session = GetSession())
{
Role role = session.CreateCriteria(typeof(Role))
.Add(Restrictions.Eq("Number", Number))
.UniqueResult<Role>();
return role;
}
} 有不有大神啊 --------------------编程问答-------------------- 这个很久没弄过了,映像有点模糊。记得以前
<property name ="Name" column="FNAME"/>
这种一般为了防止出错都会写成一致的。
使用这个框架的确定就是调试起来很麻烦。但是问题一般都会出现在配置文件里的。你仔细核对下 --------------------编程问答-------------------- 都对好了啊 查询起来不报错啊 但是也没有数据显示 --------------------编程问答-------------------- 调试的时候拿不到数据么? --------------------编程问答-------------------- var query = this.Session.CreateQuery(
@"from Person as a inner join a.PersonSecrets as b with b.User.Id = :userId and b.RemindeBirthday = :remind"); --------------------编程问答-------------------- 是啊 我要用查询一个Role下面的很多用户 但是我查出role表里面的别的数据都出来了 就是Users集合是null 是没映射好 还是查询语句有问题啊 大神只条明路... --------------------编程问答-------------------- 从几个方面去检查下。这里只看到两个表的映射,中间表有映射没?
再则就是看看他们的对应关系是否正确,是一对多一对一还是多对多。。
然后还要看看你是否正确的取值了?实在是太久没用过这个框架了。差不多都快忘记了。。怕是有心无力啊 --------------------编程问答-------------------- 如果是学习用还可以去研究下,一般公司的话建议还是别用这个框架,调试麻烦,错误莫名其妙,而且效率不高。。
补充:.NET技术 , ASP.NET