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

vb.net – 使用DataContext类和SqlConnection有什么区别?

发布时间:2020-12-17 07:17:11 所属栏目:百科 来源:网络整理
导读:这可能是一个非常模糊的问题,但我想我真的不明白发生了什么.我问了一个 question earlier,我被告知一种“将数据绑定到对象”的简单方法就是运行一个SqlConnection(connectionString).该回复还包括一条评论说我可以看中L2S和实体框架,所以我更深入地研究了这
这可能是一个非常模糊的问题,但我想我真的不明白发生了什么.我问了一个 question earlier,我被告知一种“将数据绑定到对象”的简单方法就是运行一个SqlConnection(connectionString).该回复还包括一条评论说我可以看中L2S和实体框架,所以我更深入地研究了这些.看来,与DataContext对象有关的所有内容都指向数据库.为什么SqlConnection会带来好处?

使用其中任何一个有什么区别(或优点/缺点)?还有一个“标准”吗?一个更现代吗?

附:我问了很多不需要回答的问题.我只想为我的问题添加一些清晰度,以及我对这个主题的理解程度.

解决方法

SqlConnection是基础的原始ADO.NET类库的一部分 – 实际上是该库的SQL Server部分.这是.NET中所有数据访问的基础.

使用原始ADO.NET,你是非常“笨拙”并接近金属 – 你必须创建你的SQL查询并执行它们,你得到行和列,非常像关系数据库会给你.

优点:非常接近SQL,真正强大,性能最佳
缺点:更难编写,更多“粘合”代码,更少的类型安全性,更紧密地耦合到底层数据库结构

DataContext(Linq-to-SQL)或ObjectContext(Entity Framework)是更高级别的抽象 – 它们位于ADO.NET之上,但它们(Linq-to-SQL或Entity Framework)提供所谓的ORM功能 – 在这里,你’不是真正处理原始SQL语句和行/列,相反,这些代码生成器将为您创建一个抽象层 – 它是从.NET对象构建的.数据库中的每个表都将转换为相应的.NET类,其中包含该表中所有列的属性.

此外,对于L2S和EF,您通常使用LINQ进行查询 – 您的查询更像C#代码,而L2s / EF将处理您在C#中表达的查询转换为SQL Server将执行的实际SQL语句.

优点:更容易使用,处理得更好(具有属性与原始行/列的对象),类型安全,使用LINQ查询的能力,更高的开发效率缺点:另一层意味着更多的翻译,对性能的打击,不适合某些事情(如批量操作)

(编辑:李大同)

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

    推荐文章
      热点阅读