C# 需要建议:从Linq到SQL再到实体框架

C# 需要建议:从Linq到SQL再到实体框架,c#,asp.net,entity-framework,linq-to-sql,c#-4.0,C#,Asp.net,Entity Framework,Linq To Sql,C# 4.0,我知道linq到sql和实体框架之间的高级区别,但是,我希望其他人能够提供建议,他们自己已经做出了转换,或者在这两方面都有足够的经验。从linq到sql的强大背景来看,就实现和底层细节而言,在我开始用entity framework编写新的数据访问层项目时,有什么重要的事情需要知道吗 我已经创建了我的edmx文件(我选择了数据库优先的方法),到目前为止,所有内容似乎都与LINQtoSQL完全相同。对我有帮助的是一个简短的项目列表,比如,在LINQtoSQL中,您可以[这样][这样做],但在实体框

我知道linq到sql和实体框架之间的高级区别,但是,我希望其他人能够提供建议,他们自己已经做出了转换,或者在这两方面都有足够的经验。从linq到sql的强大背景来看,就实现和底层细节而言,在我开始用entity framework编写新的数据访问层项目时,有什么重要的事情需要知道吗

我已经创建了我的edmx文件(我选择了数据库优先的方法),到目前为止,所有内容似乎都与LINQtoSQL完全相同。对我有帮助的是一个简短的项目列表,比如,在LINQtoSQL中,您可以[这样][这样做],但在实体框架中,您需要[这样做]


对不起,如果这是一个奇怪的问题,但任何尝试的答案将不胜感激。谢谢

在L2S和EF之间的新项目中,我建议使用EF(考虑实体框架版本4.0或更高版本,不要使用早期的EF版本)

虽然Linq到SQL是一个类到表的映射,但EF4是一个完整的ORM(对象关系映射)工具,具有不同的映射场景

有了EF,您就有了很大的灵活性:

  • 数据库优先方法
  • 模型优先法
  • 代码优先方法
以及与LINQ提供商的强大集成

使用Linq2SQL进行单元测试是一场噩梦。 有了EF,就有了现成的POCO(普通旧CLR对象)类。在L2S中,实体类与L2S命名空间紧密耦合

EF还可以在领域驱动的设计场景中帮助您

微软认为EF是第一种数据库访问方法,它是RIA服务或MVC数据库脚手架等服务的基础。
LinqToSql现在是仅在Windows Phone场景中使用的第一种数据库访问方法。

NH比Windows Phone好得多。。。但同样,由于EF是微软的宝贝,它将随着时间的推移而成长,而NH更成熟,功能更丰富,只是说“使用NH”对OP没有帮助。这可能是重复的:我不认为EF4有任何根本性的不同-你几乎可以像在Linq to SQL中那样做你的事情。EF4将提供附加功能(如表继承方案、将一个对象映射到多个表或将一个表映射到多个对象类型),但这些都是“附加”功能,不会真正妨碍您的工作。您所说的“第一个数据库访问方法”是什么意思?显然这两项技术都不是第一位的。对不起,我的英语很差。。。我的意思是,在数据库访问技术集(ADO.NET、LinqToSql、EF)中,EF是微软的首选技术,他的工作重点是它。