使用实体框架添加/更新实体列表

时间:2009-12-21 03:59:34

标签: c# entity-framework silverlight-4.0

我正在从Silverlight向服务返回一个List(自己的类),在此列表中有旧实体具有更新值和全新实体,如何使用实体框架将其保存回数据库?

使用cEnts.CardItems.AddObject显然会给我重复。

2 个答案:

答案 0 :(得分:3)

您想使用Attach()而不是AddObject()。

Attach将获取您的断开连接对象并让容器知道它是否需要更新。将添加没有PrimaryKey的新对象。

答案 1 :(得分:1)

如果您使用相同的实体上下文进行选择和更新/插入,则必须调用AddTo ...()方法将新实体和ApplyPropertyChanges插入到已更改的实体中。

如果使用不同的上下文,则问题会更复杂,因为您必须从一个上下文中分离实体并将它们附加到另一个上下文。一旦分离的实体失去其更改的状态,您必须明确指定哪些属性已更改(有关详细信息,请检查:http://www.abadjimarinov.net/blog/2009/12/13/AttachAlreadyChangedObjectToADataContextInEntityFramework.xhtml)。