在什么情况下我应该使用Entity SQL?

时间:2010-12-04 20:14:46

标签: sql entity-framework linq entity-framework-4 entity-sql

我想知道是否有更适合使用ESQL的情况?

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

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

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

3 个答案:

答案 0 :(得分:22)

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

  1. 在LINQ中表达某些内容真的很难。
  2. 用于构建非常动态搜索。
  3. 如果要使用由您正在使用的提供程序公开的数据库特定功能。
  4. 此外,如果您了解Entity SQL,您将能够表达QueryViews和模型定义的查询。

答案 1 :(得分:3)

我遇到了这些非常相似的问题(我在早些时候输入我的内容时没有显示)堆栈溢出流程,我猜他们有更深入的讨论(尽管T-SQL没有被提及很多,但它有点漂亮虽然明显):

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

答案 2 :(得分:1)

就像朱莉所说的那样。编写模型定义的函数需要Esql,反过来可以通过LINQ to Entities Queries使用。 大多数人都会使用LINQ to Entities。另一种情况是,当您想要使用存储函数(buit in或UDF)构建查询时,您无法使用LINQ TO Entities us。在这种情况下,esql是您在EF1中的唯一方法,但在EF4中,您可以使用其功能来公开要在LINQ中使用的那些函数。 关于性能,esql表现更好。但是你可能更喜欢使用Linq而不是使用esql来提高性能。