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

发布于 2024-10-06 05:21:18 字数 245 浏览 7 评论 0原文

我想知道是否有情况更适合使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

故人的歌 2024-10-13 05:21:19

我在 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):

Note that the two questions are a bit "old" so you might validate some of data based on your current understanding of EF4

魂牵梦绕锁你心扉 2024-10-13 05:21:19

正如朱莉所说的那样。 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.

千秋岁 2024-10-13 05:21:18

我发现 ESQL 对于边缘情况很有用,例如:

  1. 在 LINQ 中表达某些内容确实很困难。
  2. 用于构建非常动态搜索。
  3. 如果您想使用您正在使用的提供程序公开的数据库特定函数。

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

I find that ESQL to be good for edge cases, for example:

  1. Where it's just really hard to express something in LINQ.
  2. For building very dynamic searches.
  3. If you want to use a database specific function that is exposed by the provider you are using.

Also, if you know Entity SQL, you will be able to express QueryViews and Model-Defined Queries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文