我想知道是否有更适合使用ESQL的情况?
通常,我发现ESQL令人沮丧(特别是在需要完全限定实体类型的所有特殊情况下)&可能使用ESQL完成的任何事情都可以通过SQL或LINQ完成。
但是我想知道ESQL更适合解决方案的情况,或者比使用SQL或LINQ(更容易/更快的代码或更好的性能等)具有竞争优势的情况。
那么,这里有什么妥协?什么时候使用三种方法中的每一种来查询EF4更好?
答案 0 :(得分:22)
我发现ESQL适用于边缘情况,例如:
此外,如果您了解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来提高性能。