0

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

假设我有一个可以容纳物品的购物车,这意味着我有一个包含 ShoppingCartItem 实体集合的 ShoppingCart 实体。

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

所以,如果我有一个 Shoppingcart 和两个孩子,我现在添加 3 个新项目,我最终会在 ShoppingCart 表中有 2 个 ShoppingCart 条目和 7 个 ShoppingCartItem 条目......

我跟踪了代码,一旦使用 AddObject() 添加了新的 ShoppingCartItem,ShoppingCart 实体就会被标记为已添加...

我怎样才能防止这种情况?

非常感谢,

斯蒂芬

4

1 回答 1

1

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

于 2010-07-27T08:30:27.417 回答