gpt4 book ai didi

c# - 通过关联表的 Entity Framework 1to1 关系在 EDMX 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 17:49:22 26 4
gpt4 key购买 nike

我在 SQL Server 数据库中有以下表格 enter image description here

其中有一个1-1关联表(FooBar),在对应的FooId、BarId上有唯一索引,主键为(FooId,BarId)。

需要明确的是,FooBar 不允许任何 FooId(由于唯一约束)在表中多次出现,任何 BarId(由于唯一约束)也不允许在表中多次出现。这就是它成为 1-1 关联表的原因。

我想要这个关联表而不是 Foo 和 Bar 之间的 1-1 关系,因为在我的现实世界场景中,Bar 将与不同的不相关表有其他关系,我会想要类似的关联表(而不是添加新的 FK每个新表的列到栏)

然后我将这些表格放入我的 EDMX 设计器中。这种关系是以多对多而不是一对一的形式引入的。 enter image description here

这当然不是我想要的。我可以手动将模型更改为 1-1 关系。 enter image description here

但后来我得到一个错误(在设计器中)。 enter image description here

这是一个错误还是无法在 EF 中以这种方式创建 1-1 关联?

最佳答案

这是整个 EF 设计的“错误”:Entity Framework 4-6.1x Only Honors Multiplicity on Primary Keys

因此,即使我们知道(和 RA 模型)由于候选键约束,它是 1-1 关系,EF 不会也不会喜欢它。倒霉。

“解决方案”包括:

  1. 将模型更改为 EF 可以理解的内容(EF 理解代码优先,而不是 RA)。当然,这可能表明所选 RA 模型存在“问题”,但这与问题正交..

  2. 接受错误生成的多重性规则并“谨慎使用”;脏工作可以被包装,但必须在自动生成的模型之外手动添加。

  3. .. 嗯,还有其他人吗?

对未解决问题的无耻插入处理相同的核心缺乏功能:

关于c# - 通过关联表的 Entity Framework 1to1 关系在 EDMX 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com