我有一个实体/表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 的类型,请相应地更改它。