多到零或一种关系



我有一个实体/表purchases。此表有一个customerId 。我还有另一张桌子customers.此表有 customerId

单个客户可以进行多次购买。但此数据库只是主数据库的视图/表示。这意味着客户可能会也可能不在场。但是购买如果存在将永远有customerId.表中可能还没有相应的客户。

我想使用 EF6 读取Purchases并显示客户信息(如果存在(或仅为空。

如何在 EF6 中进行此设置?

一旦我将 customerId/客户添加到购买中,EF 就会创建一个外键,并防止在客户不存在的情况下插入购买。我希望它们的两个表是独立的,并且仅在购买中填充客户(如果存在(。

有什么想法吗?

您需要将purchase表中的customerId字段设置为可为空。

如果使用 EF 代码优先方法:

public int? CustomerId { get; set; }
public virtual Customer Customer { get; set; }

否则,请在数据库架构中更改它并重新加载 EF 模型:

ALTER TABLE purchase ALTER COLUMN customerId INT NULL

当然,如果您不使用 INT 作为 ID 的类型,请相应地更改它。

最新更新