2013-03-13 110 views
0

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

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

回答

1

不能触发所需的DELETE语句,但你可以这样做:

使用。取(100)仅fetech和删除一组每的SubmitChanges记录()调用,并在一个循环中运行,直到你得到没有更多行返回。

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

+0

不幸的是我有覆盖主索引列的辅助指标。我会删除它,但是微软的DatabaseSchemaUpdater没有API从我的表中删除一个索引:-( – Soonts 2013-03-13 19:54:13

+0

但是你仍然可以使用Take ..!? – ErikEJ 2013-03-13 20:29:41

+0

是的 - 我会尽快试一试。非常感谢你的帮助。 – Soonts 2013-03-13 21:14:15