繁体   English   中英

Linq-to-SQL可以根据需要进行插入或更新吗?

[英]Can Linq-to-SQL Do an Insert or update as needed?

我有一个分布式应用程序,它通过WCF将数据发送到服务器以存储在数据库中(SQL Server 2008)。

通常这些数据是新的。 所以我只是做InsertAllOnSubmit()。

但偶尔,由于与运行客户端的手持设备之间的通信奇怪,我得到一个已经在服务器中的对象。

有没有办法说InsertOrUpdateAllOnSubmit? 或者我是否必须更改我的代码以浏览每个对象并检查它是否在数据库中,然后根据需要进行插入或更新? 我有很多对象类型,所以这会很快很繁琐:(

更改数据库上的存储过程以处理重复项插入。

通常,当您尝试进行任何类型的插入或更新并且存在冲突(例如已存在的对象)时,我将其视为场景的模式,然后一旦检测到冲突,您就会请求新数据并将更新应用于它。 这使您可以灵活地决定哪些更改获胜,或者以某种方式提示用户让他们查看新数据并确定他们的数据是否应该获胜。 这一切都取决于上下文和业务规则。

这主要适用于更新,但如果您考虑为什么插入发生这些冲突,您可能能够调整您的实现以使用并发检测和解析技术。 http://msdn.microsoft.com/en-us/library/bb399373.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM