【发布时间】:2019-11-06 22:35:48
【问题描述】:
我与一个订单和一些订单线有一对多的关系。
从 2.0 更新运行时时。?到 NetCore 2.2.7 我已经开始收到这条消息:
System.InvalidOperationException:实体上的属性“OrderId” 类型“OrderLineDto”有一个临时值。要么设置永久 显式设置值或确保将数据库配置为生成 此属性的值。
更新时有什么变化吗?这个错误到底是什么?在 OrderlineDto 中,我确实有一个 OrderId,但我从来没有做任何事情来维护它,我也不认为我应该这样做。
简化我的代码如下所示:
Order o = new OrderDto() {Foo = "Foo"};
o.Lines.Add(new OrderlineDto(whatever) {Bar = "Bar"});
_db.Orders.Add(o);
_db.SaveChanges();
OrderlineDto 是数据库优先,如下所示:
[Key]
[Column("Id_pk")]
public int Pk { get; set; }
public int OrderId { get; set; }
public virtual OrderDto Order { get; set; }
这似乎仍然适用于某些计算机,但不适用于其他计算机。所以它可能是一个糟糕的安装或其他东西,但如果可以进行代码更改以明确解决它,那么我也对此感兴趣。
【问题讨论】: