我从外部API获取数据,并希望使用Entity Framework将其保存在SQL Server中。我得到的数据是订单信息。数据大致如下:
订单:
订单ID
客户
送货地址
产品
客户:
问题是任何客户都可以下多个订单。我的实体框架基于订单信息。因此,如果客户放置了多个订单,我会收到主要密钥违规,因为即使订单不是,客户也已经在数据库中。
供参考:我通常会添加如下订单:orderContext.Orders.Add(order);
由于每个订单都包含客户数据,因此我无法在不“添加”客户的情况下添加订单。即使我要检查现有客户,我仍然必须将记录添加到Orders表,这仍然会触发问题。有没有办法告诉EF添加或更新每个“子”类?
此处的示例比实际数据更简单。还有其他几个依赖项,这样即使我转而使用Customer类作为EF的基础,它仍然会有这个问题。
答案 0 :(得分:0)
像这样更改你的表:
将CustomerID添加到您的Order
表格中,这是因为每个Order
只有一个 Customer
而每个Customer
都有多个或零 Order
订单(订单ID,客户ID,ShippingAddress)
客户(客户ID,...)