代码之家  ›  专栏  ›  技术社区  ›  Sam Schutte

LINQ到SQL CompiledQuery.Compile()以及更新、删除、插入?

  •  7
  • Sam Schutte  · 技术社区  · 16 年前

    因此,我已将LINQ to SQL中的所有select查询转换为使用CompiledQueries来加快速度。到目前为止,select语句非常有效,但我还没有弄清楚如何预编译insert、update或delete语句。

    当然,当您在LINQtoSQL中插入、删除或更新时,必须使用对象模型。但很明显,它会在某个地方生成一个查询,最好预先编译并存储在一个静态成员中。

    这可能吗?在未预编译的情况下,LINQ的更新、删除和插入性能如何?我可以看到它比select要快得多,因为它们在下面做的事情要简单得多,而且“动态性”要小得多。。。

    3 回复  |  直到 16 年前
        1
  •  8
  •   AnthonyWJones    16 年前

    这有很大的区别。Linq到SQL select查询可以是大型复杂表达式树。这些可能需要一段时间“编译”。在本例中,合并到一些可以在SQL Server上运行的T-SQL。因此,缓存一个操作的结果以便可以重用是有意义的。

    然而,其他删除、更新和插入操作都是简单的操作,不需要将表达式树转换为T-SQL(LINQ本身就是查询)。不幸的是,我们接受过培训,认为执行这些其他操作的SQL代码是“查询”,我们实际上并没有询问任何信息。

    这些操作仅由DataContext定义,而不是由LINQ定义,因此执行这些函数的代码已经编译。

        2
  •  3
  •   DamienG    16 年前

    [)阿米恩

        3
  •  0
  •   KristoferA    16 年前