I want to do a query over for one of my entity but I want to get done for multiple columns.
Questions (Table)
Id Name OpenId CloseId
1 A 1 NULL
2 B 2 3
3 C 4 5
4 D 6 7
5 E 8 9
Now the GroupTable is
Id Name
1 AA
2 BB
3 CC
4 DD
5 EE
6 FF
7 GG
8 HH
9 II
Now I want to do a queryOver on Question table with both OpenId and CloseId which are from the group table. How can I do.
I can achieve easily from the SQL query like.
select * from questions q
inner join GroupTable g on q.OpenId = g.Id Or q.CloseId = g.Id
How can I get this through Queryover ?
The class structure looks like this :
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; }
}
can you try it.
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();