调用使用 Entity Framework 的 DAL

Calling DAL that uses Entity Framework

我有一个正在调用 DAL 库的 Web API 应用程序。 DAL 库使用 Entity Framework 与 SQL 数据库交互。现在,我需要将连接字符串设置到 Web API 项目中的数据库。这也需要我在 Web API 项目中安装 EF。有什么方法可以在 Web API 项目中设置连接字符串而无需安装 EF?

您可以包装 DbContext,这样 DAL 项目就不会暴露任何与 EF 相关的组件。通过这样做,您不必将 EF 安装到您引用 DAL 项目的每个项目中。

public class DataContextWrapper : IDisposable {
    public DataContextWrapper() {
        DataContext = new DataContext();
    }

    internal DataContext DataContext { get; private set; }

    public void Dispose() {
        DataContext.Dispose();
    }
}

只要您的存储库等也在 DAL 项目中,并且它们不是 return 数据库实体而是模型,您就没问题。

我在我的 Web api 项目中使用 EF 所用的相同连接字符串。我在网络 api 项目中引用了 EntityFramework.SqlServer.dll。现在,它起作用了。