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

如何在.NET Standard 2.0项目中轻松配置Entity Framework Core?

在.NET Standard 2.0项目中配置Entity Framework Core的解决方案

别担心,.NET Standard 2.0项目完全可以配置Entity Framework Core,你遇到的错误只是因为** .NET Standard本身是一个标准库,没有独立的运行时环境,没法直接执行代码**,而EF Core的包管理器控制台(PMC)或者CLI工具需要一个可执行项目(比如.NET Core控制台/Web项目、.NET Framework控制台/Web项目)来作为"启动载体"运行命令。

下面是具体的解决步骤,一步步来就好:

1. 准备一个可执行项目

如果你的解决方案里还没有可执行项目,新建一个就行——只要它的框架版本兼容.NET Standard 2.0:

  • .NET Core 3.1及以上版本
  • .NET Framework 4.6.1及以上版本

2. 让可执行项目引用你的.NET Standard 2.0项目

在解决方案资源管理器里,右键点击可执行项目的"依赖项",选择"添加项目引用",勾选你的.NET Standard项目,确认即可。

3. 执行EF Core命令时指定项目参数

不管用PMC还是.NET CLI,都需要明确指定两个项目:你的.NET Standard项目(EF Core所在的类库)和那个可执行的启动项目。

用包管理器控制台(PMC)的例子:

# 添加初始迁移
Add-Migration InitialCreate -Project YourNetStandardProjectName -StartupProject YourExecutableProjectName

# 更新数据库
Update-Database -Project YourNetStandardProjectName -StartupProject YourExecutableProjectName

用.NET CLI的例子:

# 添加初始迁移
dotnet ef migrations add InitialCreate --project YourNetStandardProjectName --startup-project YourExecutableProjectName

# 更新数据库
dotnet ef database update --project YourNetStandardProjectName --startup-project YourExecutableProjectName

额外小贴士:配置数据库连接字符串

推荐把连接字符串放在可执行项目的配置文件里(比如.NET Core的appsettings.json,.NET Framework的App.config),然后在你的.NET Standard项目的DbContext中读取:

比如在DbContext的OnConfiguring方法里:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        // 这里可以通过配置读取,示例用硬编码(生产环境别这么干)
        optionsBuilder.UseSqlServer("Server=.;Database=YourDbName;Trusted_Connection=True;");
    }
}

或者更规范的做法是在可执行项目的启动类里通过依赖注入配置DbContext,然后注入到.NET Standard项目的服务中,这样能更好地管理配置。

总的来说,只要有一个可执行的启动项目作为"跳板",.NET Standard 2.0项目用EF Core完全没问题,按上面的步骤操作就能解决你遇到的错误啦。

内容的提问来源于stack exchange,提问作者Joe Jazdzewski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:42:48