Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架CTP5一对一映射_Entity Framework_Entity Framework 4_Entity Framework Ctp5_Ef Code First_Ef4 Code Only - Fatal编程技术网

Entity framework 实体框架CTP5一对一映射

Entity framework 实体框架CTP5一对一映射,entity-framework,entity-framework-4,entity-framework-ctp5,ef-code-first,ef4-code-only,Entity Framework,Entity Framework 4,Entity Framework Ctp5,Ef Code First,Ef4 Code Only,我有两张桌子: 要求 RequirementId-PK 固定装置 固定ID-PK RequirementId-FK/可为空/唯一约束 一个夹具只能有一个要求,其他夹具不能引用相同的要求。夹具不必有要求,它是可选的 我所做的是,在Sql Server中,我对Fixture表中的RequirementId列设置了唯一的约束。如何在实体框架CTP5中设置此映射 是否可以在每个实体上都有一个双向导航属性 public class Fixture { public int FixtureId {

我有两张桌子:

要求 RequirementId-PK

固定装置 固定ID-PK

RequirementId-FK/可为空/唯一约束

一个夹具只能有一个要求,其他夹具不能引用相同的要求。夹具不必有要求,它是可选的

我所做的是,在Sql Server中,我对Fixture表中的RequirementId列设置了唯一的约束。如何在实体框架CTP5中设置此映射

是否可以在每个实体上都有一个双向导航属性

public class Fixture
{
    public int FixtureId { get; set; }
    public Requirement Requirement { get; set; }
}

public class Requirement
{
    public int RequirementId { get; set; }
    public Fixture Fixture { get; set; }
}
也许我完全弄错了,所以任何建议都很好。
提前感谢

不幸的是,EF的当前版本无法使用唯一约束。在EF中实现1:0..1映射的唯一方法是“共享PK”。这意味着,如果主实体是Fixture,它将有FixtureId作为其主键,而Requirement将有FixtureId作为其主键,FK到Fixture。

您所追求的是所谓的一对一外键关联,就像前面提到的Ladislav一样,EF本机不支持。然而,我在中首先展示了如何用代码实现它

如果需求必须能够在没有固定装置的情况下存在呢?太棒了。提前谢谢