14

我想知道是否有更建议使用 ESQL 的情况?

一般来说,我发现 ESQL 令人沮丧(特别是在需要完全限定实体类型的所有特殊情况下)并且可能使用 ESQL 完成的任何事情都可以通过 SQL 或 LINQ 完成。

但我想知道 ESQL 更适合解决方案或比使用 SQL 或 LINQ 具有竞争优势的情况(更容易/更快的编码,或更好的性能等)

那么,这里的妥协是什么?什么时候最好使用这三种方法中的每一种来查询 EF4?

4

3 回答 3

22

我发现 ESQL 适用于边缘情况,例如:

  1. 在 LINQ 中表达某些东西真的很困难。
  2. 用于构建非常动态的搜索。
  3. 如果您想使用您正在使用的提供者公开的数据库特定功能。

此外,如果您了解 Entity SQL,您将能够表达 QueryView 和模型定义的查询。

于 2010-12-04T20:33:14.930 回答
3

我在 stack over flow 上遇到了这些非常相似的问题(之前我在输入我的时候没有出现),我猜他们有更深入的讨论(虽然 T-SQL 没有被提及很多,但它有点明显) :

请注意,这两个问题有点“陈旧”,因此您可能会根据您当前对 EF4 的理解来验证一些数据

于 2010-12-05T23:16:51.923 回答
1

正如朱莉所说的那样。Esql 需要编写模型定义的函数,作为回报,这些函数可以通过 LINQ to Entities 查询使用。大多数情况下,您将使用 LINQ to Entities。另一种情况是,当您想使用存储功能(内置或 UDF)构建查询时,您无法使用 LINQ TO Entities。在这种情况下,esql 是您在 EF1 中的唯一方法,但在 EF4 中,您可以使用它的功能来公开要在 LINQ 中使用的那些函数。关于性能,esql 表现更好。但是您可能更喜欢使用 Linq 提高生产力而不是使用 esql 来提高性能。

于 2010-12-04T20:52:57.257 回答