确保LINQ to SQL实体在提交时删除

时间:2010-03-08 18:14:55

标签: c# linq-to-sql

标记某些实体DeleteOnSubmit()的最佳方法是什么。有没有办法检查并说明这是删除?

示例:我有一个引用EntitySet的实体<>我从EntitySet中删除<> 8个实体中的4个。提交更改时,我想在那些4上说DeleteOnSubmit()!此方案应在单个EntityRef<>上播放太

当然,DataContext存在于另一层,因此......抓取,更改,发送回是工作。

谢谢。

2 个答案:

答案 0 :(得分:1)

根据您的架构描述,这很难回答。仅仅因为你使用分层方法并不意味着你不能调用DeleteOnSubmit ...你只需要调用自己的方法来包装我认为的。

当然,除非您在更新例程中实例化DataContext对象。在这种情况下,你必须做其他事情。您的数据层可以公开像MarkForDelete()这样的方法,它只是将实体添加到集合中,然后公开一个单独的SubmitChanges(),它迭代收集的项目以进行删除,将它们附加到datacontext然后执行实际操作。 DeleteAllOnSubmit()致电。

那说我从来没有真正打扰整个实体序列化/反序列化/重新附加的东西,因为它似乎fraught with peril。我通常只是在列表中收集主键,选择实体并重新删除它们。真的,这不再是工作了。

答案 1 :(得分:0)

看一下DeleteAllOnSubmit()。您将此方法传递给要删除的实体列表。