一对多关系不起作用 - 实体框架

Joh*_*ith 2 c# entity entity-framework one-to-many

我在实体框架(我相信 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)
Run Code Online (Sandbox Code Playgroud)

Settings.SettingsTypeID对该引用有一个外键约束SettingsType.SettingsTypeID

保存设置(使用选择settingstype)后,值会正确保存(我已经检查了数据库以确保可以Setting.SettingsTypeID正确看到更新的值)。

但是,在尝试settingType根据所选检索对象时Setting,例如

var SettingsType = Setting.SettingsType;
Run Code Online (Sandbox Code Playgroud)

Setting.SettingsType总是回来null

我错过了什么吗?

Don*_*nut 5

您需要使用加载相关对象 (MSDN)上的本文描述的加载模式之一加载SettingType与您的Setting对象关联的对象

我建议使用该Include方法,如下所示:

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