通过关联表的实体框架1to1关系在EDMX中不起作用

Jim*_*Jim 9 c# sql-server entity-framework edmx entity-framework-6

我在SQL Server数据库中有以下表 在此输入图像描述

其中有一个1-1关联表(FooBar),它在相应的FooId,BarId上有唯一索引,主键是(FooId,BarId).

要清楚的是,FooBar不允许任何FooId(由于唯一约束)不止一次出现在表中,任何BarId(由于唯一约束)都不会在表中多次出现.这就是使其成为1-1关联表的原因.

我希望在Foo和Bar之间建立这种关联表而不是1-1关系,因为在我的真实世界场景中,Bar将与其他不相关的表有其他关系,我将需要类似的关联表(而不是向Bar添加新的FK列)对于每个新表)

然后我将这些表格带入我的EDMX设计师.这种关系是以多对多而非一对一的方式引入的. 在此输入图像描述

这当然不是我想要的.我可以手动将模型更改为1-1关系. 在此输入图像描述

但后来我得到了一个错误(在设计师中). 在此输入图像描述

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

use*_*740 8

这是整个EF设计的"缺陷":实体框架4-6.1x 尊重主键上的多重性.

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

"解决方案"包括:

  1. 将模型更改为EF理解的内容(EF理解Code First,而不是RA).当然,这可能表明所选RA模型存在"问题",但这与问题正交.

  2. 生活在错误生成的多重性规则和"谨慎使用"; 脏工作可以包装,但必须在自动生成的模型之外手动添加.

  3. 嗯,其他人?

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