You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core 2.1中引用采用Database First模式的EF项目程序集

解决方案

可以在.NET Core 2.0 Web应用中引用包含EF Database First生成实体类的数据库基础项目,核心需要做好EF版本适配和依赖注入配置,具体操作如下:

  • 第一步:适配类库框架
    如果原数据库基础项目是基于.NET Framework开发的类库,可直接将其重定向到.NET Standard 2.0,纯POCO实体类和EF6生成的DBContext几乎不存在兼容问题;如果不想修改原项目框架,ASP.NET Core 2.0也支持直接引用.NET Framework类库,仅需保证你的Core项目运行在Windows平台即可(因为.NET Framework仅支持Windows)。
  • 第二步:安装匹配的EF版本
    不要使用EF Core操作原EF6生成的DBContext,直接在ASP.NET Core 2.0项目中安装NuGet包 EntityFramework 6.4以上版本,该版本原生支持.NET Core 2.0运行环境。
  • 第三步:配置DBContext注入
    1. 在Core项目的appsettings.json中添加数据库连接字符串:
    {
      "ConnectionStrings": {
        "MyDbConn": "你的数据库连接字符串内容"
      }
    }
    
    1. 给原有DBContext添加支持传参的构造方法(可写在EDMX自动生成类的分部类里,避免更新模型时被覆盖):
    public partial class 你的DBContext类名 : DbContext
    {
        public 你的DBContext类名(string connectionString) : base(connectionString)
        {
        }
    }
    
    1. 在Startup.cs的ConfigureServices方法中注册DBContext:
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        // 注册DBContext
        services.AddScoped(_ => new 你的DBContext类名(Configuration.GetConnectionString("MyDbConn")));
    }
    
  • 第四步:验证调用
    注册完成后就可以在控制器、服务类中通过构造函数注入DBContext,和原有MVC项目的使用方式完全一致。

内容的提问来源于stack exchange,提问作者Dinesh M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:09:04