Ufu*_*arı 58 .net entity-framework .net-4.0 linq-to-sql
我正在检查第二版Professional ASP.NET MVC并实现了EF取代LINQ to SQL.我从第一本书中熟悉LINQ to SQL,但我对EF一无所知.无论如何,在阅读代码时,似乎没有任何改变,除了名称.相同的旧存储库类,相同的旧函数.
我做了一点研究.我知道LINQ不仅限于SQL.EF也不限于Microsoft系列SQL服务器.在这个2岁的问题中,人们对EF并不满意,并表示它过于复杂.但现在我在EF名下读相同的代码.只有使用LINQ to SQL的ADO.NET实体模型生成类.任何人都可以清除关于EF功能的大惊小怪,因为它现在是事实上的标准ORM吗?
Cra*_*ntz 76
它们有点相似,并且可以以非常类似的方式使用,代码方面,但它们有一些重要的区别.请注意,"LINQ"与"LINQ to SQL"不同; EF也使用LINQ.一些值得注意的差异是:
Ste*_*ary 17
EF随着v4.0而成熟.在此之前,使用它有点痛苦,我不推荐它.现在我的建议是所有新的LINQ到DB代码都使用EF4.
就新功能而言,LINQ部分实际上与LINQ to SQL非常相似.但它是一个完全不同的架构:EF4充当(EF)ADO.NET提供程序的LINQ提供程序,然后包装另一个ADO.NET提供程序.所以有新的东西,比如Entity SQL(我不使用),EF支持不同的底层ADO.NET提供程序(我使用它).
EF使用的XML建模系统也允许更强大的映射抽象.我经常使用的是具有映射到实体继承关系的相同主键的不同表; 根据我的理解,在LINQ to SQL中执行此操作的唯一方法是通过"选择器列"(尽管我从未在LINQ to SQL中尝试过这一点).
Ind*_*ons 13
LINQ to SQL:
实体框架
它可以与各种数据库一起使用,如Oracle,DB2,MYSQL,SQL Server等.
它最初生成.edmx文件.使用3个不同的文件.csdl,.msl和.ssdl维护关系
它支持复杂类型.
它可以从模型生成数据库.
它允许实体类和关系表/视图之间的一对一,一对多和多对多映射
它允许您使用EntitySQL,ObjectContext,DbContext查询数据.
它提供了一种松散耦合的方法.由于它的代码第一种方法允许您使用依赖注入模式,使其松散耦合.
它可以用于SQL Server,Oracle,DB2和MySQL等RDBMS的快速应用程序开发.
| 归档时间: |
|
| 查看次数: |
46489 次 |
| 最近记录: |