2012-03-27 23 views
0

我有3個表如何從不同的表

任務(ID,文本,CONTACT_ID)
用戶(ID,姓名)
公司(ID,姓名)

得到相同的列

和2結表

task_users(TASK_ID,USER_ID)
task_companies(噸ask_id,COMPANY_ID)

注:CONTACT_ID可參考表的用戶或公司

我怎樣才能在一個標準

+0

你有把表映射到相應的對象嗎?我們可以看到它們之間的映射嗎? – Baz1nga 2012-03-28 06:10:17

回答

0

這與QueryOver例如獲得task id, task text, contact name,但它幾乎像的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(); 

其他是映射。您可以創建基本實體「聯繫人」並從其中擴展用戶和公司。