如何将ConnectTring从AppSettings.json文件传递到DOT Net Core 2.2中的类库项目



我的解决方案中有两个项目。一个是Angular Core 2.2 Web应用程序,另一个是一个类库项目,其中包含域模型和DBContext。我想将连接字符串传递到dbcontext,以便可以使用代码第一方法创建数据库。这是我的连接字符串

"ConnectionStrings": {
"DataConnection": "Server=.;Database=Test;Trusted_Connection=True;MultipleActiveResultSets=true;Integrated Security=True;"

此代码在Configureservice方法中

 public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContextPool<TestContext>(context => context.UseSqlServer(Configuration.GetConnectionString("DataConnection")));
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

}

这是我的dbcontext

public class TestContext : DbContext
{
 public CCPGV1Context(string connectionString):base(connectionString)
    {
    }
protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }
}

我是代码第一方法的新手以及DOT Net Core。请指导我该怎么办!

由于您将连接字符串配置为服务,因此您可以简单地注入DbContext类的构造函数:

public class TestContext : DbContext 
  { 
  public TestContext(DbContextOptions<TestContext> options):base(options)
         {
         }
   }

您必须将IConfiguration接口作为参数传递,从 Microsoft.Extensions.ConfigurationStartup类的concome concometer(例如,将其命名为任何命名,例如,我将其称为_configuration(。

>

然后,替换此行

services.AddDbContextPool<TestContext>(context => context.UseSqlServer(Configuration.GetConnectionString("DataConnection")));

与此:

services.AddDbContext<TestContext>(options => options.UseSqlServer(_configuration.GetConnectionString("DataConnection")));

thar之后,将此构造函数添加到您的TestContext类:

public TestContext(DbContextOptions<TestContext> options) : base(options)
        {
        }

这用于种子DBContextOptions类,其配置为Startup.cs中的TestContext均匀

相关内容

最新更新