【问题标题】:In what situations should I use Entity SQL?在什么情况下应该使用 Entity SQL?
【发布时间】:2011-05-20 07:53:13
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 酷你是编程实体框架的作者。我希望 SO 有一个粉丝功能。
    • @Luke..是的,脸红了,哈哈
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-20
        • 1970-01-01
        • 2015-12-02
        相关资源
        最近更新 更多