我做錯了什麼?我用嚮導映射了一個SQL服務器數據庫。這是一個相當複雜的數據庫,但對於這個例子,我們可以假設有三個表:REPORTROWS,REPORTCOLUMNS和REPORTNAMES。 REPORTROWS具有以下列ID,RESULT,REPORTDATE,REPORTCOLUMNID,REPORTNAMEID。 REPORTNAMES和REPORTCOLUMNS是帶有ID,NAME的非常簡單的表格。 ID始終是主鍵,REPORTCOLUMNSID和REPORTNAMESID是將REPORTROWS與REPORTCOLUMNS和REPORTNAMES鏈接的外鍵。我得到一個空值的實體框架不可空的外鍵
現在我用有效值填充這三個表(我沒有違反任何外鍵約束)。當我把下面的代碼
var recs = from a in ctx.REPORTROWS
where a.REPORTNAMES.NAME == "my report" && a.REPORTDATE == somedate select a;
我得到我想要的行,但在後面的代碼,因爲它是空我不能使用領域a.REPORTCOLUMNS!爲什麼? REPORTCOLUMNID被定義爲一個不可爲空的整數(這就是爲什麼它是外鍵)。但是,該領域a.REPORTNAMES是正確的。即使我將&& a.REPORTCOLUMNS != null
添加到查詢,a.REPORTDATE仍爲空。
我看過類似問題的鏈接,但找不到確切的答案。任何人都可以幫助我。爲了您的信息,我正在使用.NET Framework 3.5,並且在映射數據庫時,我無法在嚮導中檢查「包含外鍵」。它變灰了(我仍然不明白爲什麼)。
感謝很多提前
它的EF版本V2.0.50727
哪個EF版本是這樣的? –
使用嚮導時,不能包含外鍵,因爲自從.NET 4附帶的EF 4以來,支持外鍵關聯。這就是爲什麼此選項呈灰色顯示。你應該粘貼你的模型截圖或表格定義 - 很難理解,問題在哪裏。 – Dennis