2011-12-22 40 views
4

我知道linq到sql和实体框架之间的高级差异,但是,我希望从其他人那里得到建议,这些人已经自己做了切换,或者已经足够与两者的经验。从强大的LINQ到SQL背景,就实现和低级细节而言,当我开始使用实体框架编写我的新数据访问层项目时,有什么重要的事情需要了解?需要建议:从Linq切换到SQL到实体框架

我已经创建了我的edmx文件(我选择了数据库优先方法),并且所有内容似乎都与linq to sql至今完全相同。有什么可以帮助我的是一个简短的项目列表,比如在linq to sql中,你这样[这样],但是在实体框架中,你需要[这样]。

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

+0

而NH是比较成熟的,具有更丰富的功能只是说“用NH”不利于成长OP。 – 2011-12-22 14:08:35

+2

这可能是重复的:http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql – Strillo 2011-12-22 14:09:48

+0

我不认为在EF4中有什么根本不同 - 你可以几乎去做你的就像你在Linq-to-SQL中所做的一样。 EF4将提供*附加功能*(如表格继承方案,将一个对象映射到多个表格或将一个表格映射到多个对象类型) - 但这些是“附加”,并不会妨碍您的发展。 – 2011-12-22 14:49:59

回答

1

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

虽然Linq to SQL是一个类到表的映射,但EF 4是一个完整的ORM(对象关系映射)工具,具有不同的映射方案。

随着EF你有很大的灵活性:

  • 数据库第一种方法
  • 机型第方法
  • 守则第一种方法

与LINQ提供一个强大的整合。

用Linq2SQL进行单元测试是一场噩梦。 使用EF您可以使用POCO(Plain Old CLR Object)类。在L2S中,实体类紧密耦合到L2S名称空间。

EF还可以帮助您在领域驱动设计方案中。

Microsoft现在认为EF是第一种数据库访问方法,它是RIA服务或MVC数据库脚手架等其他服务的基础。

LinqToSql现在是第一个仅在Windows Phone场景中使用的数据库访问方法。

+0

“第一个数据库访问方法”是什么意思?显然,这些技术都不是第一个。 – 2011-12-22 18:43:56

+0

对不起,我可怜的英语......我的意思是在数据库访问技术集(ADO.NET,LinqToSql,EF)EF是微软的首选,他的努力是专注于它。 – 2011-12-23 09:15:34

0

NH好远......但同样作为EF是微软的宝宝,它会随着时间的专家组