2010-09-27 93 views
2

我在實體框架(3.5我相信)中創建一對多(或一對一)關係時遇到問題。一對多關係不起作用 - 實體框架

示例表/型號:

Settings: 
    SettingsID pk int not null 
    SettingsName varchar(250) null 
    SettingsTypeID fk int null 

SettingsType: 
    SettingsTypeID pk int not null 
    SettingsTypeName varchar(250) 

我有Settings.SettingsTypeID引用SettingsType.SettingsTypeID外鍵約束。

保存設置(使用選擇的settingstype)後,這些值將正確保存(我已檢查數據庫以確保可正確看到Setting.SettingsTypeID更新的值)。

然而,在試圖基於所選擇的Setting(例如,

var SettingsType = Setting.SettingsType; 

Setting.SettingsType總是回來null

我錯過了什麼或?

回答

4

您需要加載與您的Setting對象關聯的SettingType對象,使用本文中描述的一種加載模式Loading Related Objects (MSDN)

我建議使用Include method,像這樣:

var setting = (from s in context.Settings.Include("SettingsType") 
       where s.SettingsID == id select s).FirstOrDefault();