2009-08-10 33 views
3

我工作的項目在工作中,這幾乎是一個調試經理,我似乎無法弄清楚如何正確鏈接LINQ到SQL項目表。LINQ到SQL鏈接對象由多個ID字段

我有了(除其他事項外)包詳細信息表

DepartmentID, CategoryID, ItemID 

並且項目表(實際上是一個數據庫視圖從不同的數據庫的,並且只在此應用程序讀取)也有這3個領域,但是當我添加這些3領域的關聯,它不添加作爲一個屬性對象ot PackageDetail類

我做錯了關聯?所有單身的人在做的很好...

回答

1

已經標記爲主鍵的那些ID字段?確保您將必要的列分配爲主鍵,這應該可以正常工作。希望它有幫助

0

確保使用主鍵和外鍵關係正確設置密鑰。如果這仍然不起作用,您可以考慮添加一個新的密鑰列,而不是依賴複合密鑰?

LINQ to SQL的最後一個選項通常是用XML編輯器手動更新DBML。正常的單個關鍵字關係如下所示:

<Association Name="Schedule_Profile" Member="Schedule" ThisKey="ScheduleID" Type="Schedule" IsForeignKey="true" /> 

建議您嘗試自己創建元素,並嘗試將ThisKey設置爲csv列列表。 OtherKey屬性也可能是感興趣的。

0

它看起來像你可以只使用項目Id和忽略其他2,因爲這是最具體的限定詞 - 換句話說,部門和類別完全由itemId確定。

+0

不是真的,因爲ItemID只是每個部門類別唯一的。 – dkarzon 2009-08-20 22:54:40

0

您的意思是這樣的查詢。

var result = from table in dbContext.table1 join table2 in dbContext.table2 join new { table.DepartmentID, table.CategoryID, table.ItemID} equals new {table2.DepartmentID, table2.CategoryID, table2.ItemID} 
select table; 
+0

不,我的意思是一個LINQ到SQL關聯,第二個表實際上是一個視圖不是表。 – dkarzon 2009-08-23 22:17:57