加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

实体框架和LINQ to SQL – 利益冲突?

发布时间:2020-12-12 16:34:15 所属栏目:MsSql教程 来源:网络整理
导读:在过去一周里,我一直在阅读博客圈,Linq到SQL已经死亡[和长期的EF和Linq到实体].但是当我阅读MSDN的概述时,我看起来Linq to Entities生成的eSQL只是Linq to SQL生成SQL查询的方式. 现在,由于底层实现(并且自从SQL Server还不是ODBMS)仍然是一个关系存储,在某些
在过去一周里,我一直在阅读博客圈,Linq到SQL已经死亡[和长期的EF和Linq到实体].但是当我阅读MSDN的概述时,我看起来Linq to Entities生成的eSQL只是Linq to SQL生成SQL查询的方式.

现在,由于底层实现(并且自从SQL Server还不是ODBMS)仍然是一个关系存储,在某些时候,Entity框架必须将其转换成SQL查询.为什么不将Linq修复到SQL问题(m:m关系,只有SQL服务器支持等),并将Linq作为生成这些查询的层使用SQL?

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

在我看来 – 至少对于我未经考虑的心灵来说,这是一种自然而然的方式,可以将Linq转换为EF中的SQL.

注释?

解决方法

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

> LINQ to Entities over Object Services over Entity Client
>通过实体客户端的对象服务实体SQL
>实体SQL使用Entity Client命令对象(最常见于经典ADO.NET)

实体客户端最终会抛出ESQL命令的表示(以规范的数据库不可知形式),特定RDBMS的ADO.NET提供程序负责转换为特定于存储库的SQL.这是正确的模型IMHO,因为多年来投入了大量时间(并将继续投资),为每个商店生产优质的ADO.NET提供商.

由于实体框架需要与许多商店一起使用,因此许多ADO.NET提供商的优势在于,它们可以轻松地优化Entity Client在每个商店基础上生成的内容(至少是我们与v1的位置). LINQ to SQL团队解决的问题要小得多 – “仅适用于SQL Server”,因此可以更容易地存储特定的东西.我知道EF团队知道,有一些情况下,EF到SQL Server生产的TSQL效率比L2S低,正在努力改进V2.

有趣的是,此模型允许在实体客户端和商店的ADO.NET提供商之间添加新功能.这些“包装提供商”可以添加诸如日志记录,审核,安全性,缓存等服务.这被描述为在http://blogs.msdn.com/efdesign/archive/2008/07/09/transparent-caching-support-in-the-entity-framework.aspx的V2功能

如果你看到更大的图像,你可以看到,尝试和以某种方式将L2S TSQL生成改造成实体框架的构造将是非常困难和限制性的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读