1

我正在使用 Visual Studio 2022 Preview 和 .NET 6 SDK。

在这里,我正在创建一个有 2 层的 webAPI 项目。api项目(Bgvsystem.webAPI)类库(BgvSystem.Persistance)

NuGet 包-

安装包 Microsoft.EntityFrameworkCore.SqlServer -版本 6.0.0-rc.1.21452.10

安装包 Microsoft.EntityFrameworkCore.Tools -版本 6.0.0-rc.1.21452.10

安装包 Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 6.0.0-rc.1.21464.1

当我尝试使用脚手架添加控制器时,出现以下错误

There was an error running the selected code generator: unable to resolve service for type 'microsoft.entityframeworkcore.dbcontextoption.. While attempting to activate Dbcontext in  .net 6 and visual studio 2022 preview

在此处输入图像描述

如何解决这个问题?请帮助解决这个问题。

4

3 回答 3

2

经过3天的努力,我终于找到了错误并修复了它。

实际上我必须将连接字符串放在 MyApp.Persistance.DbContextClass 中,如下所示

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer("Data Source=DESKTOP-SV8GPJ2\\SQLEXPRESS;Initial Catalog=StarterAppDB;Persist Security Info=True;User ID=sa;Password=Admin@1234");
            }
        }

然后它工作得很好。

于 2021-10-04T14:25:17.720 回答
0

您需要将 DBContext 添加到 startup.cs 文件中的服务集合或作为构造函数 BGvSystemContext 类传递。

于 2021-10-02T19:57:17.893 回答
0

如果是 .NET 6

你能这样试试吗

程序.cs

builder.Services.AddDbContext<YourDbContext>(options =>
     options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));

应用设置.json

"ConnectionStrings": {
   "DefaultConnection": "Server=YourServer; Database=YourDb; Integrated Security=true; MultipleActiveResultSets=true; Trusted_Connection=True"
}

YourDbContext.cs

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        optionsBuilder.UseSqlServer("Server=YourServer; Database=YourDb; Integrated Security=true; MultipleActiveResultSets=true; Trusted_Connection=True");
    }
}
于 2022-02-18T08:47:12.690 回答