首页 > 解决方案 > 实体框架 EDMX 多重性无效?

问题描述

我似乎在设计中遇到了数据库优先多重性的问题。我正在使用 EF v5.0

我有两个具有以下内容的数据库实体(例如伪类):

entity {
    long Id; //PK
    bool myProp;
}

entity_detail {
    long entityID; //FK to entity.Id
    string name;
    datetime entered;
}

当我从数据库更新模型时,它会在 .tt 中正确生成这些类,但是,它会将它们entity_detail放入类中ICollection<entity_detail>entity

这是由于多重性,当我将多重性从EDMX 更改Many (*)Zero or One (0..1)内部时,它会出错并迫使我使用Many (*)

这种情况的问题是,只有在设置为falseentity_detail时才应该生成(以避免数据库中的冗余数据)myProp

因此,作为 0..1,关于如何从数据库角度进行设置以使 EDMX 在实体端将其更新为 0..1 和在 entity_detail 端更新为 1 的任何想法?

提前致谢!

标签: c#entity-frameworkmultiplicity

解决方案


对于任何寻找答案的人来说,正确的设置是使对象entityID上的外键 ( ) 列entity_detail也成为主键

这样它将是唯一的,但只有在它存在时才需要(0..1

希望这可以帮助!


推荐阅读