当前位置:  开发笔记 > 数据库 > 正文

LINQ是对象关系映射器吗?

如何解决《LINQ是对象关系映射器吗?》经验,为你挑选了2个好方法。

LINQ是一种对象关系映射器吗?



1> Steven Robbi..:

LINQ本身就是一组语言扩展,有助于查询,可读性和减少代码.LINQ to SQL是一种OR Mapper,但它并不是特别强大.在实体框架通常被称为OR映射器,但它确实不可小视更多.

还有其他几个LINQ to X实现,包括LINQ to NHibernate和LINQ to LLBLGenPro,它们以与实体框架大致相似的方式提供OR Mapping和支持框架.

如果您只是在学习LINQ,我建议您坚持使用LINQ to Objects来感受它,而不是潜入其中一个更复杂的风格:-)



2> Sklivvz..:

LINQ根本不是ORM.LINQ是一种查询"东西"的方式,可以或多或少地被视为针对不同事物的类似SQL的语言扩展(IEnumerables).

可以查询各种类型的"东西",其中包括SQL Server数据库.这称为LINQ-to-SQL.它的工作方式是它根据数据库结构和查询生成(隐式)类.从这个意义上讲,它更像是一个代码生成器.

LINQ-to-SQL不是ORM,因为它根本不会尝试解决对象 - 关系阻抗不匹配问题.在ORM中,您可以设计类,然后手动将它们映射到表或让ORM生成数据库.如果随后因任何原因(通常是重构,重新规范化,非规范化)更改数据库,很多时候您可以通过更改映射来保持类的原样.

LINQ-to-SQL没有那种做法.您的LINQ查询将与数据库结构紧密耦合.如果更改数据库,则可能还需要更改LINQ.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有