我在谷歌和stackoverflow上搜索类似的问题将近2个小时,但没有找到任何解决方案.
我有2个表,关系1对多.
1) [Accounts]
PK Account_Id
int User_ID
2) [Temporary_Accounts]
Fk Account_Id
char IsAccepted {'1','0',null}
varchar name
Run Code Online (Sandbox Code Playgroud)
和2个映射类
1) Acc
int Id;
User user;
TempAcc Temp; //cause each Account can have 0 or one TempAcc (with IsAccepted == null)
2)TempAcc
int Id;
bool IsAccepted;
string name;
Run Code Online (Sandbox Code Playgroud)
我想显示给定user_id的所有帐户以及在[Temporary_Accounts]和IsAccepted == null中有记录的Accounts的附加信息(fe name).
所以SQL应该是这样的:
select acc.Account_Id, acc.User_Id, tempacc.Name
from Account acc left join Temporary_Account tempacc
on (acc.Account_ID = tempacc.Account_Id and tempacc.IsAccepted is null)
where (acc.User_Id = 65);
Run Code Online (Sandbox Code Playgroud)
但我的IQueryOverquery:
IQueryOver<Acc> query = (...)
query.JoinAlias(f …Run Code Online (Sandbox Code Playgroud)