我的解决方案中有两个项目。一个是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.Configuration
到Startup
类的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
均匀