我想对我的一个实体进行查询,但我希望为多个列完成。
问题(表)
Id Name OpenId CloseId
1 A 1 NULL
2 B 2 3
3 C 4 5
4 D 6 7
5 E 8 9
现在GroupTable是
Id Name
1 AA
2 BB
3 CC
4 DD
5 EE
6 FF
7 GG
8 HH
9 II
现在我想在Question表上使用OpenId和CloseId进行queryOver,它们来自组表。我能怎么做。
我可以从SQL查询中轻松实现,如。
select * from questions q
inner join GroupTable g on q.OpenId = g.Id Or q.CloseId = g.Id
如何通过Queryover获取此信息?
类结构如下所示:
public class Question
{
public int Id { get; set; }
public GroupTable OpenTable { get; set; }
public GroupTable CloseTable { get; set; }
}
public class GroupTable
{
public int Id { get; set; }
public int Name { get; set; }
}
答案 0 :(得分:0)
GroupTable openTable = null;
GroupTable closeTable = null;
Question ques = null;
List<Question> quesList = new List<Question>();
quesList = session.QueryOver<Question>(() => ques)
.JoinAlias(() => ques.CloseTable, () => closeTable)
.JoinAlias(() => ques.OpenTable, () => openTable)
.Where(() => ques.CloseTable == closeTable && ques.OpenTable == openTable)
.List().ToList();