实体框架关系修正失败

时间:2018-08-13 21:55:18

标签: entity-framework

对于以下代码,EF的预期行为是提交订单,并将orderItemorderID=100一起提交,据我所知,字段orderID的这种自动分配是已知的作为关系修复。因此,我们不必为要添加的orderID提供orderItem字段。

        Entities ctx = new Entities();

        Order order = new Order()
        {
            ID = 100,
            name = "abc"
        };

        // ID field of OrderItem is auto-increment and the primary field
        //OrderItem is a navigation property of Order through the orderID field
        OrderItem orderItem = new OrderItem ()
        {
            name = "oi_abc"
        };
        order.OrderItems.Add(orderItem);

        ctx.Orders.Add(order);
        ctx.SaveChanges();

这段示例代码可以正常工作。但是问题是,我们项目中的类似代码无法正确修复关系。 (我知道最好提供完整的代码,但是由于代码和数据库的其他复杂性以及我们公司的政策,这是不可能的。)

我们的项目中的代码在提交期间仅将orderID设置为0。

一些重要的事情要注意:

  1. 我们不会在任何地方禁用跟踪上下文更改
  2. 手动设置orderID可以,但是我们不希望这样做
  3. 如果在创建ctx.Orders.Add(order);对象之后马上有order行,那么它将按预期工作。

在上述情况下,您对为什么会发生这种故障有任何猜测吗?

0 个答案:

没有答案