Entity framework 4.1 如何在实体框架中结合entityID属性执行(可空)一对零或一关系?

Entity framework 4.1 如何在实体框架中结合entityID属性执行(可空)一对零或一关系?,entity-framework-4.1,ef-code-first,Entity Framework 4.1,Ef Code First,问这个问题我觉得很傻,但是,我就是不知道如何创建一对零或一的关系,同时提供entityID和entity属性 以以下为例: public class base { public int ID {get;set;} } public class linked { public int ID {get;set;} public string test {get;set;} } 如果我将public virtual linked{get;set;}放入基类中,一切都会按预期工作,我会得到一个可为空

问这个问题我觉得很傻,但是,我就是不知道如何创建一对零或一的关系,同时提供
entityID
entity
属性

以以下为例:

public class base
{
public int ID {get;set;}
}

public class linked
{
public int ID {get;set;}
public string test {get;set;}
}
如果我将
public virtual linked{get;set;}
放入基类中,一切都会按预期工作,我会得到一个可为空的1对0或1关系

然而,我理解仅使用int/EntityID与用于延迟加载的虚拟相结合来存储关系的好处(例如,
public int linkeded{get;set;}
与上面的虚拟相结合),但是,我似乎不知道如何使用相同的关系来创建这种关系

我尝试过使用fluent API
Entity().HasOptional(x=>x.linked)。WithRequired()
,这是我认为应该的,它创建了0到0或1的关系,但是,它不可为null,这是我不理解的,因为
HasOptional

我以为我在理解实体框架方面已经有了一个转折点,但这真的让我退缩了!我不明白我错在哪里。有人能帮忙吗?

尝试使用

public int? linkedID {get;set;}

您使用的int不可为null,因此它将默认为0

天哪,我真不敢相信这有多简单!由于您必须在FluentAPI中手动定义项,我真希望当它与模型冲突时会出现某种异常/错误。。。无论如何对于一个简单的
符号,我觉得自己像个白痴!非常感谢。