问题:将对象“订单”添加到我的 dbcontext 时,订单的所有嵌套对象都被“读取”到数据库中,尽管嵌套对象是静态数据并且只应在数据库中添加一个引用。
示例:数据库包含 0 个订单和 3 个项目。
我添加了一份包含 2 件商品的订单。
现在数据库有 1 个订单和 5 个项目。订单中的两个项目已“读取”到数据库中,即使这些项目在 db.SaveChanges() 之前具有正确的主键。
我意识到我可以在保存更改之前将现有项目附加到 dbcontext,但这真的是唯一的方法吗?当主键与现有项目匹配时,EF 不能确定项目已经存在吗?
有谁知道这在新版本的 EF CodeFirst 中是否有所不同?