实体框架和 LINQ To SQL - 利益冲突?

2023-12-23

过去一周我一直在博客圈上读到 Linq to SQL 已死[而 EF 和 Linq to Entities 万岁]。但当我阅读 MSDN 上的概述时,我发现 Linq to Entities 生成 eSQL 的方式与 Linq to SQL 生成 SQL 查询的方式相同。

现在,由于底层实现(并且由于 SQL Server 还不是 ODBMS)仍然是关系存储,因此实体框架在某些时候必须转换为 SQL 查询。为什么不修复 Linq to SQL 问题(m:m 关系、仅 SQL Server 支持等)并使用 Linq to SQL 作为生成这些查询的层?

这是因为性能原因还是 EF 使用不同的方式将 eSQL 语句转换为 SQL?

在我看来(至少对于我没有学问的头脑来说),这似乎很适合在 EF 中测试 Linq to SQL。

评论?


值得注意的是,实体框架(至少)有三种使用方式:

  • 通过实体客户端的对象服务的 LINQ to Entities
  • 实体 SQL 通过对象服务通过实体客户端
  • 使用实体客户端命令对象的实体 SQL(与经典 ADO.NET 最相似)

实体客户端最终吐出 ESQL 命令的表示(以规范的、与数据库无关的形式),特定 RDBMS 的 ADO.NET 提供程序负责将其转换为存储特定的 SQL。恕我直言,这是正确的模型,因为多年来我们投入了(并将继续投入)大量时间来为每个商店生成出色的 ADO.NET 提供程序。

由于实体框架需要与许多商店以及许多 ADO.NET 提供程序一起工作,因此它们轻松优化实体客户端在每个商店上生成的内容的范围较小(至少 - 这就是我们在 v1 中的情况)。 LINQ to SQL 团队需要解决一个小得多的问题 - “仅适用于 SQL Server”,因此可以更轻松地存储特定内容。我知道 EF 团队意识到,在某些情况下,EF 到 SQL Server 生成 TSQL 的效率低于 L2S,并且正在努力针对 V2 改进这一点。

有趣的是,该模型允许在实体客户端和商店的 ADO.NET 提供程序之间添加新功能。这些“包装提供者”可以添加日志记录、审计、安全性、缓存等服务。这是作为 V2 功能进行讨论的http://blogs.msdn.com/efdesign/archive/2008/07/09/transparent-caching-support-in-the-entity-framework.aspx http://blogs.msdn.com/efdesign/archive/2008/07/09/transparent-caching-support-in-the-entity-framework.aspx

如果您从更大的角度来看,您会发现尝试以某种方式将 L2S TSQL 生成改造到实体框架的体系结构中将非常困难,而且确实受到限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架和 LINQ To SQL - 利益冲突? 的相关文章

随机推荐

  • 将应用程序部署到 Shinyapps.io 时出现错误消息

    部署我的应用程序时 shinyapps deployApp path to your app 我收到以下错误消息 error Parsing manifest Begin Log End Log Error Unhandled Except
  • 在React组件中动态导入图像

    我有一个文章组件 显示包含列出的文章的博客页面 render const articles this state articles const article Object keys articles map cur gt return
  • 使用表单发布验证 OAuth 不记名令牌

    我使用 Web API 2 创建了一个基于 OData 的 Web 后端 在控制器上使用 AuthorizeAttribute 效果非常好 我希望能够通过标准 html 表单和提交上传文件 我们传递 OAuth 令牌 该令牌通常作为隐藏输入
  • flutter 中的嵌套路由浏览器 url

    我已经关注了这个tutorial https docs flutter dev cookbook effects nested nav 到目前为止 嵌套路由可以正常工作 但当我导航到嵌套路由时 浏览器的 URL 不会更新 我知道浏览器 ur
  • 如何使用 QPainter 类在圆圈周围书写文字?

    问题很简单 我想要这样的东西 要么使用QPainter类或使用Qt 图形框架 有几种方法可以使用QPainterPath指定的here http qt project org faq answer how do i make text fo
  • 如何使用 SourceTree 更新我的分叉存储库?

    我正在使用 SourceTree 与 BitBucket 来管理我的代码 我已经分叉了一个存储库 并且父存储库已更新 如何使用 SourceTree 将上游代码合并到我的分叉存储库中 首先 设置父存储库 在 SourceTree 中打开您的
  • 如何以十进制值而不是 null 获取此值

    我试图在此查询中获取十进制值 但无法获取我得到 NULL 值 SELECT CAST CAST CAST SUM CAST 0 AS INT AS DECIMAL 10 2 100 CAST NULLIF SUM CAST 0 AS INT
  • 如何在 Flutter 的 Stack Widget 中添加多个浮动按钮

    在颤振中 使用一个视图覆盖另一个视图堆栈小部件 https docs flutter io flutter widgets Stack class html 做工很好啊现在我需要在屏幕底部的左侧和右侧添加两个浮动按钮 我在右侧添加了一个按钮
  • 创建已完成的任务

    我想创建一个完整的Task not Task
  • 如何关闭二进制文件(.doc、.pdf 等)的 git 1.7.8 开销

    我使用 git 1 7 4 来处理大型 svn 存储库 没问题 我更新到 git 1 7 8 现在 当我执行 git svn dcommit 时 git 做了一些多余的工作 在任务管理器中 我看到它执行了大约 1M 的写入操作 我使用的是
  • 从逻辑应用中的服务总线获取内容

    I am new to Azure logic apps I have a service bus and pass a json object message to that service bus then I set up an ac
  • Android:将此对象设为可打包

    我有一个对象需要在 2 个对象之间传递Activity 该对象有 HashTable String 等 无法弄清楚如何使其成为 Parcalebale 以便我可以填充该对象的数组并将单个 obj 或数组传递给其他 Activity 我的班级
  • 机器学习中回归和分类之间的区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是机器学习的新手 谁能告诉我机器学习中分类和回归之间的主要区别 回归旨在预测连续的输出值 例如 假设您试图根据许多输入参数来预测某个
  • 如何消除渲染后“闪烁”?

    我尽力成为 Javascript Ajax 技术使用的纯粹主义者 确保所有 Ajax y 行为都是基本功能的增强 同时在禁用 Javascript 时该网站也能正常运行 然而 这会导致一些问题 在某些情况下 DOM 节点仅在浏览器中启用 J
  • ggplot将颜色渐变缩放到数据范围之外的范围

    我正在寻找一种方法来拉伸两个值之间的颜色渐变并标记图例 而不管数据集中的数据值范围如何 本质上 是否存在等价于的功能ylim 对于颜色渐变 给定绘制通常在 1 和 1 之间的 z 值的代码 如果中断在数据范围内 我可以绘制并标记梯度 lib
  • 手动为 gdb 创建调试符号

    Intro 对于我的编译器课程 我必须将一些语言翻译为汇编语言 现在我的代码出现了段错误 我很难对其进行调试 具有监视变量的能力会大大简化过程 但最终的 asm 代码只有寄存器及其导数 Question 如何手动为 gdb 创建调试符号 我
  • 文件存在冲突,尽管 gitignore 应该忽略它们

    尽管我有一些文件存在冲突 gitignore应该忽略他们 如果我尝试更新我得到的解决方案Unmerged path git status带来以下内容 On branch master Your branch is up to date wi
  • 在 Java 中读取文本文件直至 EOL

    我正在尝试读取一个文本文件 其中包含 hello James How are you today 我想读取字符串中的每个字符 直到找到 EOL 字符 因为我使用的是 Windows 其中 n r 代表 EOL 字符 我如何编写一个条件来遍历
  • 应用程序生成的应用程序请求在 Silverlight 中失败

    我正在尝试在两个用户之间发送应用程序生成的请求 而不通过 JavaScript UI FacebookClient client new FacebookClient SessionSecret Dictionary
  • 实体框架和 LINQ To SQL - 利益冲突?

    过去一周我一直在博客圈上读到 Linq to SQL 已死 而 EF 和 Linq to Entities 万岁 但当我阅读 MSDN 上的概述时 我发现 Linq to Entities 生成 eSQL 的方式与 Linq to SQL