我有两张桌子。
第一个表:员工
IdEmployee
Name
LastName
第二个表: CommentsEmployee
IdComment
IdEmployee
Note
在两个表中与IdEmployee进行协商,从C#获取Name,IdComment和Note 表是SQL类型 正在尝试
DetachedCriteria criteria1 = DetachedCriteria.For<Employee>()
.Add(Restrictions.Eq("IdEmployee", 2))
.SetFetchMode("Name", FetchMode.Eager);
DetachedCriteria criteria2 = DetachedCriteria.For<CommentsEmployee>()
.Add(Restrictions.Eq("IdEmployee", 2))
.SetFetchMode("IdComment", FetchMode.Eager)
.SetFetchMode("Note", FetchMode.Eager);
var result = session.CreateMultiCriteria()
.Add(criteria1)
.Add(criteria2)
.List();
/////////////////////////////////////////////// //////////////////////////////////////// 否则
var result = session
.CreateCriteria<Employee>()
.CreateCriteria("CommentsEmployee")
.Add(Restrictions.Eq("IdEmployee", f))
.List();
任何人都可以帮助我
答案 0 :(得分:2)
我认为你正在寻找一个简单的连接声明?
SELECT * FROM Employee JOIN CommentsEmployee ON Employee.IdEmployee = CommentsEmployee.IdEmployee;
这是通用SQL,我希望它对你有用,但至少它应该传达这个概念。
答案 1 :(得分:0)
我想你应该看看包包。将评论作为一个包添加到员工,您只需要1个get / load语句。
员工类:
IdEmployee
Name
LastName
IList <CommentsEmployee> Comments
行李的xml:
<bag name="Comments" inverse="false" lazy="true" cascade="save-update" generic="true">
<key column="EmployeeId"/>
<one-to-many class="EmployeeComments">
</bag>