日期:2014-05-18  浏览次数:20441 次

有人研究NHibernate吗?
小弟我最近研究这个东西,确实很方便,但是灵活性差了很多.

有个问题问问大家,我现在如果有2张有关联的表,我怎么样才可以根据外键查询出我

要的内容呢?(比如一个员工表和一个部门表根据部门的ID连起来的)

一查就报错,做成视图也不可以,感觉NHibernate只有在一张表里用了,其他时候我还
是用了NHibernate里封装好的ADO.NET做的,但那样就失去了用NHibernate的意义了,所以想问一下大家有没有办法解决这个问题.




------解决方案--------------------
参考

http://sifang2004.cnblogs.com/archive/2005/09/05/230713.html

http://caidehui.cnblogs.com/archive/2005/06/24/NHibernateArch.html
------解决方案--------------------
public class TBLUser
{
private int loginID;
private TBLUserInfo userInfo;

public virtual int LoginID
{
get { return loginID; }
set { loginID = value; }
}
public virtual TBLUserInfo UserInfo
{
get { return userInfo; }
set { userInfo = value; }
}
}

映射文件里:
<one-to-one name= "UserInfo " class= "NHibernate.Study.Entity.TBLUserInfo,Entity " cascade= "all "> </one-to-one>

public class TBLUserInfo
{
private int loginID;
private TBLUser user;

public virtual int LoginID
{
get { return loginID; }
set { loginID = value; }
}
public virtual TBLUser User
{
get { return user; }
set { user = value; }
}
}

映射文件:
<id name= "LoginID ">
<column name= "LoginID " sql-type= "int " not-null= "true "/>
<generator class= "foreign ">
<param name= "property "> User </param>
  <!--class 为 foreign 时必须添加 名为property 的param节点-->
</generator>
</id>
<!--
constrained(约束): 表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。
这个选项影响Save()和Delete()在级联执行时的先后顺序
-->
<one-to-one name= "User " class= "NHibernate.Study.Entity.TBLUser,Entity " constrained= "true "> </one-to-one>
------解决方案--------------------
是用NHibernate配置映射文件有点麻烦,很容易出错....所以需要小心
------解决方案--------------------
一点点,不过那东西配置文件搞得头都大了
最近在研究Spring.net
------解决方案--------------------
呵呵~配置文件的问题,最近偶也在研究这个,想用它做项目。有空可以切磋切磋!欢迎去我的博客看看:blog.csdn.net/coocoochen
------解决方案--------------------
n久前发布过一个基于nhibernate的项目,楼主如果有兴趣可以看一下:
http://wj2929.spaces.live.com/blog/cns!8D544E54AB1C7762!150.entry

> > > 或者有没有自动生成多对一或者多对多的工具?
我经常使用的工具为objectmapper2005(似乎已经有了更新版本了在http://www.puzzleframework.com/)
------解决方案--------------------
orm msn群:or-mapping@hotmail.com