EF:如何在没有数据库参考完整性的情况下建立1:1模型

本文关键字:完整性 情况下 建立 参考 模型 数据库 EF | 更新日期: 2023-09-27 18:13:56

考虑以下表格:

Base, Primary key: Id
Extension, Primary key: Id

"Extension"表中的主键值与"Base"表中的主键值相同。我想在edmx中这样建模:

底可以是0…1(0或1)Extension.

Extension可以有1(1)个Base实例。使用扩展。以访问Base实例。

当我尝试为这个关联指定映射细节时,我得到如下错误:

"错误3021:从xx行开始的映射片段的问题:Each of表Base中的以下列映射到多个概念侧面性质:底面。ID映射到"

"

我如何建模一个1:0..没有数据库关系支持的1个关系?我想要一个关系,这样我就可以用Linq查询我的read-model。

EF:如何在没有数据库参考完整性的情况下建立1:1模型

如果我读的是正确的,那么你正在做的事情类似于我在消息系统中不得不解决的问题。

基本上,我创建了一个中间表,其中有2列,都是int型,1列保存一个表的id,另一列保存另一个表的id,然后允许我将两者连接在一起。

,

--------------------------
| Base ID | Extension ID |
--------------------------

我必须手动管理表,但是,这是一点额外的工作,但它做到了。

可能不是您需要的确切模式,但我认为无论您的模式是什么,中间表都是解决您需求的明智方法。

你应该像下面这样修改你的模式类:-

基类

public class Base
{
    public int BaseID;
    public int ExtentionID;
    public virtual Extention Extension { get; set; }
}
<<p> 延伸类/strong>
public class Extention
{
    public int ExtentionID;
    public int BaseID;
    public Base Base { get; set; }
}