多对零或一种关系

时间:2019-06-04 13:22:58

标签: c# sql .net entity-framework-6

我有一个实体/表purchases。该表具有customerId。 我还有另一个表customers。该表具有customerId

单个客户可以进行多次购买。但是该数据库只是主数据库的视图/表示。这意味着客户可能会或可能不会在场。但是,如果有的话,购买的商品将始终具有customerId。该表中可能还没有相应的客户。

我想使用带有客户信息(如果存在或为空)的EF6来读取Purchases

如何在EF6中进行设置?

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要使customerId表中的purchase字段为空。

如果您使用的是EF Code First方法:

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

否则,请在数据库模式中对其进行更改,然后重新加载EF模型:

ALTER TABLE purchase ALTER COLUMN customerId INT NULL

当然,如果您没有将INT用作ID的类型,请适当更改它。