c# - 实体框架 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 的任何想法?
提前致谢!
解决方案
对于任何寻找答案的人来说,正确的设置是使对象entityID
上的外键 ( ) 列entity_detail
也成为主键。
这样它将是唯一的,但只有在它存在时才需要(0..1
)
希望这可以帮助!
推荐阅读
- swift - Swift Playground 无缘无故失败
- c# - 统一生成程序浮岛
- python - 如何使用烧瓶制作带有 csv 文件的列表?
- php - 如何正确存储数组的重复键
- javascript - 离开页面上的推送器执行客户端触发器
- user-interface - 尽管 Platform.runlater 和 executorService.execute,JavaFX 控制器间歇性地不更新 GUI
- c - FFMpeg Cygwin 编译
- r - 在 R 中,寻找一种更有效的方法来计算列中的最大值与同一列中的所有值之间的差异
- r - 使用 for 循环将 ggplot2 对象存储在列表中
- python - 如何使用 cdk python 将现有 ECS 服务导入 code_pipeline