在什么情况下应该使用 Entity SQL?
我想知道是否有情况更适合使用ESQL?
一般来说,我发现 ESQL 令人沮丧(特别是在所有需要完全限定实体类型的特殊情况下)也许使用 ESQL 完成的任何事情都可以通过 SQL 或 LINQ 完成。
但我想知道在哪些情况下 ESQL 更适合解决方案,或者比使用 SQL 或 LINQ 具有竞争优势(更容易/更快地编码,或者更好的性能等)。
那么,这里的折衷方案是什么?什么时候使用这三种方法中的每一种通过 EF4 进行查询更好?
I was wondering whether there are situation that's more advisable to use ESQL?
Generally, I find ESQL frustrating (specially with all the special cases where you need to fully qualify an entity type) & probably anything done using ESQL can be done through SQL or LINQ.
But I was wondering of situations where ESQL is a better fit for a solution or would have a competitive edge over using SQL or LINQ (either easier/faster to code, or better performance, etc.)
So, what's the compromise here? When is it better to use each one of the three approaches in querying over EF4?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在 stack over flow 上遇到了这些非常相似的问题(当我之前输入我的内容时,这些问题没有出现),我想他们有更深入的讨论(虽然 T-SQL 没有被提及很多,但它有点相当明显) :
溢出
实体
请注意,这两个问题有点“老”,因此您可以根据您当前对 EF4 的理解来验证一些数据
I came across these pretty similar questions (which didn't show up when I typed mine, earlier) on stack over flow, I guess they have deeper discussions (though T-SQL is not mentioned a lot, but it's kinda pretty obvious though):
Overflow
to entities
Note that the two questions are a bit "old" so you might validate some of data based on your current understanding of EF4
正如朱莉所说的那样。 Esql 需要编写模型定义的函数,这些函数反过来可以通过 LINQ to Entities 查询使用。
大多数情况下您将使用 LINQ to Entities。另一种情况是,当您想要使用存储函数(内置函数或 UDF)构建查询时,您不能使用 LINQ TO Entities。在这种情况下,esql 是 EF1 中的唯一方法,但在 EF4 中,您可以使用其功能来公开要在 LINQ 中使用的那些函数。
关于性能,esql 表现更好。但您可能更喜欢使用 Linq 来提高生产力,而不是使用 esql 来提高性能。
Just as what julie mentioned. Esql is required to write model defined functions which in return can be used through LINQ to Entities Queries.
Most cased you'll be using LINQ to Entities. One another case where you can't use LINQ TO Entities us when you want to build queries with store functions, either buit in or UDF. In this case esql is your only way in EF1 but in EF4 you can use its features to expose those functions to be used in LINQ.
About performance, esql is performing better. but you might prefer productivity using Linq over performance gain using esql.
我发现 ESQL 对于边缘情况很有用,例如:
此外,如果您了解 Entity SQL,您将能够表达 QueryView 和模型定义的查询。
I find that ESQL to be good for edge cases, for example:
Also, if you know Entity SQL, you will be able to express QueryViews and Model-Defined Queries.