gpt4 book ai didi

linq-to-sql - 在 Windows Phone 7.1 上使用 LINQ To SQL 删除行非常慢

转载 作者:行者123 更新时间:2023-12-04 06:09:11 25 4
gpt4 key购买 nike

有使用 SQL CE 数据库的 Windows Phone 7 应用程序。我需要删除 1000-2000 行。除了在 Windows Phone 7 Mango - SQL CE 数据库上使用 LINQ To SQL 之外别无选择。

我所做的非常简单(伪代码):

Entity[] tmp = null;
do
{
tmp = datacontext.mytable.Where( ...expression here ...).Take(200).ToArray();
if (temp.Length > 0)
{
mytable.DeleteAllOnSubmit(tmp);
datacontext.SubmitChanges();
}
} while (temp.Length > 0);

问题是删除 200 行需要 7 秒!所有时间都在里面 datacontext.SubmitChanges() .

有没有办法让它更快?

使用“批量删除”的任何选项? (也欢迎“batch_insert”)

一些技术细节:
  • DataContext 是由 SqlMetal 工具创建的,它看起来相当沉重。
  • 实体有 2 个外键关系。
  • 最佳答案

    您是否尝试在循环外调用 SubmitChanges()?

    using(var datacontext = new MyDataContext())
    {
    var entities = datacontext.mytable.Where( ...expression here ...);
    datacontext.DeleteAllOnSubmit(entities);
    datacontext.SubmitChanges();
    }

    但是您提到了一个创建数据上下文的工具。您的架构/对象图是否复杂?我没有为我的数据上下文使用任何工具,因为我的架构非常简单:没有关系。

    关于linq-to-sql - 在 Windows Phone 7.1 上使用 LINQ To SQL 删除行非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988214/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com