我有3张桌子
任务(Id,text,Contact_Id)
用户(ID,姓名)
公司(ID,姓名)
和2个联结表
task_users(task_id,user_id)
task_companies(task_id,company_id)
注意:contact_id可能是指用户表或公司
如何在一个标准中获得task id, task text, contact name
答案 0 :(得分:0)
这是QueryOver的例子,但它几乎像ICriteria。
Contact contact = null;
mappingSession.QueryOver<Task>()
.JoinAlias(() => task.Contact, () => contact)
.SelectList(list => list
.SelectGroup(task => task.Id)
.Select(task => task.Text)
.Select(() => contact.Name))
.TransformUsing(Transformers.DistinctRootEntity)
.List();
其他是映射。您可以使基本实体“联系”并从用户和公司扩展。