从Linq升级到SQL的实体框架

时间:2011-10-07 19:24:28

标签: c# linq entity-framework

虽然我已经通过一些讨论Linq to SQL和Entity Framework的帖子,但在这个阶段仍然存在很多关于以下问题的混淆。

在我提到问题之前,让我说我已经使用Linq to SQL完成了一个桌面应用程序,这种用法完全基于映射和使用SPROCS。

  1. 我是否需要将我的CRUD操作升级或重写为使用Entity Framework?如果是这样的话,使用实体框架而不是使用SPROCS的Linq to SQL有什么优势呢?

  2. Visual Studio 2008 / .net framework 3.5是否支持实体框架?

  3. .net 3.5和4.0中的实体框架支持有何区别?

  4. 在形成完整的情景图之前,这些只是我需要帮助的一些问题。

    如果你们中的任何人有任何有用的见解你可以提供我会很感激

    提前感谢

1 个答案:

答案 0 :(得分:3)

  1. 否;如果您的体系结构使用存储过程进行所有CRUD操作,那么您可以将它们与实体框架一起重用。请注意,EF1(.NET 3.5)不支持OUTPUT参数,因此如果这对您有所影响,您需要牢记这一点。请记住,当您将ORM限制为仅使用存储过程时,会失去ORM的大量灵活性。
  2. 它们几乎是不同的产品。许多人(包括我自己)认为EF1(.NET 3.5)不适合生产使用。有很多陷阱,其中最重要的是你必须在导航属性和实体类型上具有实际外键值之间进行选择。有解决方法,但它们并不漂亮。
  3. EF4 光年优于EF1。我们在生产系统中使用EF4,效果很好。具体差异几乎无法列出,但结果是您应该强烈考虑使用实体框架升级到.NET 4.0或。 EF1就是那么糟糕。