我刚开始使用微软堆栈来制作ASP.Net MVC网站,目前正在使用LINQ to SQL。我应该考虑使用LINQ to Entities吗?它有什么特别之处?如果有,是什么?
我刚开始使用微软堆栈来制作ASP.Net MVC网站,目前正在使用LINQ to SQL。我应该考虑使用LINQ to Entities吗?它有什么特别之处?如果有,是什么?
我一直在研究这个问题。
以下是我的主要发现:
LINQ to SQL
优点
缺点
无法从数据库中更新图表,必须删除类,然后从数据库中将其重新拖回图表。如果您修改了图表,则会很麻烦。
不再积极开发(他们将开发实体框架)。
Entity Framework
优点
具有更多功能(表继承等)
可以从数据库更新
具有多个提供程序(不仅限于SQL)
模型可以查询而不使用LINQ,可以使用实体SQL
Microsoft似乎正在大力投资,并将其提议为访问数据库的主要方式:Update on LINQ to SQL and LINQ to Entities Roadmap, Clarifying the message on L2S Futures。
缺点
结论
我个人决定使用实体框架。我买了一本书并阅读了在线资料,对它印象非常好。学习需要付出一些额外的努力,但是好处真的很多。
首先,Linq to Entity 提供了许多对多功能
其次,微软将会投入更多时间在它上面
而且我相信还有许多其他好的理由
虽然LINQ to SQL不会消失,但微软正在押注于LINQ to Entities。因此,我会选择LINQ to Entities。
ADO.NET团队博客上有更多关于这个问题的信息:
http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2s-futures.aspx
我按时间顺序列出了这些帖子,但一定要至少阅读最后一个 - 它实际上是最重要的。