2012-05-25 43 views
0

我知道標題可能聽起來有點奇怪,但我附加了數據庫設計的屏幕。我有兩個主表之間有多對多的關係。但是,我們使用多對多表中的主鍵來引用另一個名爲ResourceAllcoation表的表,並使用外鍵(ProjectResourceID)如何從表格中映射一個袋子/列表/集合,該表格與表格有間接鏈接

現在,在資源中獲取一袋ResourceAllocation的最佳方式是什麼實體?在nhibernate中有直接的方法嗎?

目前我的nhibernate映射有一個一對多的包到ProjectResource表,然後引用ResourceAllocation表,我覺得可能不是最好的方法。

請原諒我的無知。任何想法表示讚賞。 enter image description here

@kalki,當我實現你的映射,我想,如何產生的SQL查詢

SELECT 
* 
FROM PROJECTRESOURCE P 
LEFT OUTER JOIN RESOURCEALLOCATION R 
ON P.PROJECTRESOURCEID=R.ID WHERE P.RESOURCEID=1 

但由於ProjectResource沒有PROJECTRESOURCEID列

不起作用如果生成的查詢是

SELECT * 
FROM PROJECTRESOURCE P 
LEFT OUTER JOIN RESOURCEALLOCATION R 
ON P.ID = R.PROJECTRESOURCEID 
WHERE P.RESOURCEID=1 

它會工作。

+0

由於ProjectResource可以有一個或多個分配 你可以有內ResourceAllocation一個專案編號外鍵,那麼你將能夠地圖項目和副Versa – kalki

+0

謝謝。我可以做到這一點,但我想知道是否有一個選項可以在沒有額外引用ResourceAllocation表中的項目/資源的情況下進行。 – Jack7

+1

不知道我昨天在想什麼!超級腦凍結!多對多隻有在連接表中存在外鍵的情況下才有可能...使用具有一個或多個ResourceAllocation的ProjectResource時,我可以預見資源/項目具有ResourceAllocations集合的唯一方法(如果有Foreinkey引用 – kalki

回答

0

可以映射此使用它多到許多NHibernate和一個IdBag

+0

您能否使用nhibernate映射來詳細說明此問題。我理解想要項目和資源表的多對多部分,但是如何獲得基於資源的ResourceAllocation集合? – Jack7