【问题标题】:How does the Entity Framework and the LINQExtender project differ?Entity Framework 和 LINQExtender 项目有何不同?
【发布时间】:2010-12-07 22:52:36
【问题描述】:

我在 WPF 和 ASP.NET MVC 项目中使用了 LINQ-to-SQL,方法如下:

  • 创建数据库
  • 将表格拖入设计器中
  • 通过 LINQ 使用生成的类

现在我有一个项目,其中数据源是 Web 服务、数据库和 XML 文件的混合。根据我对Entity Framework 的了解,我可以像在 LINQ-to-SQL 中一样创建类似的类,但它们也会包装我的其他源(Web 服务、XML 文件等)但是,我没有看到 如何这将与方便的拖放视觉设计器一起使用,因为它不知道调用我的服务的哪些方法来保存数据等。

所以我还找到了LINQExtender,它使您能够创建可供 LINQ 使用的数据提供程序。从某种意义上说,这与实体框架所做的事情是一样的,但它似乎是一种创建实体框架可以使用的类的方法。

像 LINQExtender 和 Entity Framework 这样的工具是用于创建数据提供者/ORM 层的竞争解决方案,还是您可以一起使用的工具?

【问题讨论】:

    标签: .net linq linq-to-entities dataprovider


    【解决方案1】:

    实体框架是一个 ORM,专门设计用于将数据库实体映射到对象。它仅适用于数据库。另一方面,LINQExtender 并非特定于数据库,可用于为任何类型的数据源创建 Linq 提供程序。

    【讨论】:

    • 但事实并非如此 EF 能够“定位任何 ADO.NET 数据提供程序”(stackoverflow.com/questions/8676/…) 而 L2S 不能,这是否使 EF 能够包装任何可以通过 ADO.NET 数据提供程序进行访问,例如XML、CSV 或任何网络服务 (msdn.microsoft.com/en-us/magazine/cc301611.aspx)
    • 好吧,ADO.NET 可以访问类似数据库的数据源……如果这些数据源的 ADO.NET 提供程序存在,并且它们可以被操作,则可能包括 XML 或 Web 服务作为关系数据库(并非总是如此)。 AFAIK,实体框架只能访问具有关系结构的数据源。
    • 要使 Entity Framework 能够访问数据库,您需要一个支持 3.5 功能的 ADO.NET 提供程序 - 即特定的 EF 支持。你不能只扔 CSV。
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多