【发布时间】:2011-05-19 19:18:05
【问题描述】:
在这个当前项目上,开发人员多次遇到同样的问题:
具有相关实体的对象,即具有相关客户的订单通过 WCF 发送回要保存的实体工作。如果对象是新的,我们使用 AddObject() 将其放回上下文中,如果它已更改,则我们使用 ApplyCurrentValues() 来更新对象。
Order 对象已更改,但 Customer 对象没有更改(除非通过 WCF 的流式传输以某种方式影响它)。但是,当在上下文中调用 SaveChanges() 时,主对象(本例中的 Order)被保存,但 Customer 的新副本也被添加到数据库中。
我们发现的解决方法是在调用 SaveChanges() 之前将 Order 上的 Customer 的引用设置为 null,但这感觉有点麻烦。
我正在寻找解决此问题的“正确”方法,类似于 LazySaving = false,即仅保存更改的对象,不要尝试创建所有相关对象。
提前感谢您的任何指点。
【问题讨论】:
-
您使用的是 WCF RIA 服务还是您的自定义 WCF?
-
自定义 WCF,但与现成的 WCF 没有显着的配置差异。
标签: wcf entity-framework