什么是实体框架和LINQ之间的差额由.NET 4.0 SQL?差额、实体、框架、SQL

2023-09-02 01:43:54 作者:-脆骨﹏不好吃゛

我检查专业ASP.NET MVC 第二版,实现了EF替换的LINQ to SQL。我熟悉LINQ从第一本书到SQL,但我什么都不知道EF。反正在读取code,好像什么也没有,除了名字改了。同旧的存储库类,老的功能。

I was checking 2nd edition of Professional ASP.NET MVC and realized EF replaced LINQ to SQL. I am familiar to LINQ to SQL from the first book but I know nothing about EF. Anyway while reading the code, it seems like nothing has changed except the name. Same old repository classes, same old functions.

我做了一些研究。我知道LINQ不限于SQL。此外EF并不局限于微软的家庭SQ​​L服务器。 在这个2岁多的问题的人不满意EF,说这是过于复杂和所有。但现在我在读下EF名称相同的code。使用LINQ的ADO.NET实体模型insted的到SQL生成唯一的类。任何人都可以清除掉约EF功能大惊小怪,因为这是事实上的非标准的ORM呢?

I did a little research. I know LINQ is not limited to SQL. Also EF is not limited Microsoft-family SQL servers. In this 2 year old question people are not happy with EF, saying it's overcomplicated and all. But now I'm reading same code under EF name. Only classes are generated with ADO.NET Entity Model insted of LINQ to SQL. Can anybody clear out the fuss about EF features since it's the de facto standart ORM now?

推荐答案

它们有些相似,并且可以以非常类似的方式,$ C $的c-明智被使用,但它们有一些重要的差异。需要注意的是LINQ是不一样的东西的LINQ to SQL;该EF也使用LINQ。一些显着的区别是:

They are somewhat similar, and can be used in a very similar way, code-wise, but they have some important differences. Note that "LINQ" is not the same thing as "LINQ to SQL"; the EF also uses LINQ. Some notable differences are:

的LINQ to SQL主要是SQL Server只,没有那么设计多被执行。 EF英孚的设计支持,以及不支持,多个数据块,如果你有一个兼容的ADO.NET提供者。 开箱,LINQ to SQL的有一个非常可怜的故事DB元数据的变化。你必须重新从头开始你的模型的一部分​​,而你失去自定义。 的EF支持像许多一对多的关系和继承模式的特点。 LINQ to SQL不直接支持这些。 在.NET 3.5中,LINQ to SQL中有比的EF SQL-Server特定的功能更好的支持。这主要不是在.NET 4中真实的;他们在这方面相当类似。 在EF英孚允许您选择模型首先,数据库首先,​​或code首先建模。 LINQ to SQL的,开箱即用,真的只支持DB第一。