Frameworks 实体框架一对多关系保存问题

Frameworks 实体框架一对多关系保存问题,frameworks,entity,save,children,Frameworks,Entity,Save,Children,我一直在这里和谷歌上搜索帖子,找不到任何东西可以帮助我解决在现有实体上保存子实体的问题 假设我有一个购物车,它可以存放物品,这意味着我有一个ShoppingCart实体,它有ShoppingCartItem实体集合 在我的控制器中,我检查ShoppingCart是否存在,如果存在实体,则检索实体。否则,它是一个新实体(Entitystate标记为已添加)。 然后,我继续向已经存在的集合中添加项目(如果已经存在任何项目) 我现在的问题是,仅当我将更改保存到已创建的ShoppingCart时: 它正

我一直在这里和谷歌上搜索帖子,找不到任何东西可以帮助我解决在现有实体上保存子实体的问题

假设我有一个购物车,它可以存放物品,这意味着我有一个ShoppingCart实体,它有ShoppingCartItem实体集合

在我的控制器中,我检查ShoppingCart是否存在,如果存在实体,则检索实体。否则,它是一个新实体(Entitystate标记为已添加)。 然后,我继续向已经存在的集合中添加项目(如果已经存在任何项目) 我现在的问题是,仅当我将更改保存到已创建的ShoppingCart时: 它正在数据库中添加一个新的购物车,其中包含现有的商品和新的商品

因此,如果我有一个Shoppingcart和两个孩子,现在我添加了3个新项目,我在Shoppingcart表中有2个Shoppingcart条目和7个ShoppingCartItem条目

我跟踪了代码,当使用AddObject()添加新的ShoppingCartItem时,ShoppingCart实体将被标记为已添加

我怎样才能防止呢

非常感谢


Stéphan

最简单的解决方案是使用细节实体检索现有的ShoppingCart,然后不执行任何AddObject调用。改为调用SaveChanges()方法,这将在不创建新ShoppingCart实体的情况下将更改写入数据库。

Hi Devart,我通过重新设计事物的构建方式最终实现了它的工作。我首先创建了购物车,没有任何项目,因为我无论如何都需要保存它。然后,我将新创建的购物车的ShoppingCart ID分配给我想要创建的每个项目,瞧!如果我想添加新的项目,购物车的创建是简单地跳过,一切工作就像一个魅力,是更加分离!但我会在一个测试项目中尝试您的建议,看看这是否是一个有用的技术,稍后用于其他事情!非常感谢!