有条件地删除SQL行

时间:2013-03-13 14:35:09

标签: linq windows-phone-7 linq-to-sql sql-server-ce

在Windows Phone 7.1上使用Linq 2 SQL CE,如何触发“DELETE FROM table_name WHERE some_column = some_value”SQL命令?

不幸的是,即使将“max buffer size”参数增加到1024,使用Table.DeleteAllOnSubmit()方法删除项目的速度也慢得令人无法接受:stupud Linq反序列化每条记录,因此DataContext.SubmitChanges()方法永远不会返回。

1 个答案:

答案 0 :(得分:1)

您无法触发所需的DELETE语句,但您可以执行以下操作:

使用.Take(100)仅限fetech并按照SubmitChanges()调用删除一组记录,并在循环中运行,直到不再返回任何行为止。

使用rowversion列加速删除,在我的测试中从320毫秒加速到70毫秒以下 - 请参阅http://erikej.blogspot.dk/2012/04/windows-phone-local-database-tip.html