【问题标题】:Linq To SQL migration to Entity framework 4 [duplicate]Linq To SQL 迁移到实体框架 4 [重复]
【发布时间】:2011-04-25 08:07:12
【问题描述】:
我们计划迁移到 .net 3.5 并评估 Linq To SQL 和实体框架。考虑到人们在互联网上到处都在说 EF 1.0 有缺陷、复杂、设计器支持欠佳等,如果我们选择 Linq to SQL - 您认为我们能够在时机成熟时将其迁移到 EF 4 吗?
之所以出现问题,是因为 L2S 中可能没有新功能(如某些推测可能不存在),我们无法跳过 3.5 并直接跳转到 .net 4.0 以使用 EF 4。
【问题讨论】:
标签:
.net
linq-to-sql
entity-framework
.net-3.5
entity-framework-4
【解决方案1】:
LINQ-to-SQL 将存在,因为它不会从框架中删除,只是为了向后兼容。它可能没有新功能,但如果您的应用程序在没有这些功能的情况下也能正常工作,那么这并不是真正的问题,不是吗?
您将能够迁移到 EF,但所涉及的工作量可能难以预测。您目前使用什么作为数据访问层,为什么要更改?
LINQ-to-SQL 和 EF 都通过将常规 .NET 类映射到数据库对象来工作。主要区别在于 EF 可以进行更复杂的转换,而 LINQ-to-SQL 要求类几乎完全匹配表。
如果您想(最终)在 EF4 中重写您的数据层,那么我建议保留您现在拥有的所有内容,直到您准备好重写。现在重写 3.5 再过一两年再重写是没有意义的。有什么好处?
【解决方案2】:
它会起作用,但不要依赖于 L2Sql 功能、构建存储库或其他可互换的层来访问您的数据,这样您就可以在时机成熟时将 EF4 放在它的位置!
sqlmetal 非常适合从 sql 生成模型,如果您使用类似的东西(sqlmetal、nhibernate、subsonic 等),迁移到 EF 的问题可能会更少