在DBContext中拥有多个数据库可以通过以下步骤实现:
以下是一个示例:
// appsettings.json中的连接字符串配置
{
"ConnectionStrings": {
"Database1Connection": "Server=server1;Database=db1;User Id=user1;Password=pass1;",
"Database2Connection": "Server=server2;Database=db2;User Id=user2;Password=pass2;"
}
}
// DBContext类1
public class Database1Context : DbContext
{
public Database1Context(DbContextOptions<Database1Context> options) : base(options)
{
}
// 定义数据库1的实体集合
public DbSet<Entity1> Entities1 { get; set; }
}
// DBContext类2
public class Database2Context : DbContext
{
public Database2Context(DbContextOptions<Database2Context> options) : base(options)
{
}
// 定义数据库2的实体集合
public DbSet<Entity2> Entities2 { get; set; }
}
// Startup.cs中的配置
public void ConfigureServices(IServiceCollection services)
{
// 配置数据库1的DBContext
services.AddDbContext<Database1Context>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Database1Connection")));
// 配置数据库2的DBContext
services.AddDbContext<Database2Context>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Database2Connection")));
// 其他配置...
}
// 使用DBContext类
public class MyService
{
private readonly Database1Context _db1Context;
private readonly Database2Context _db2Context;
public MyService(Database1Context db1Context, Database2Context db2Context)
{
_db1Context = db1Context;
_db2Context = db2Context;
}
public void DoSomething()
{
// 使用_db1Context操作数据库1
var entities1 = _db1Context.Entities1.ToList();
// 使用_db2Context操作数据库2
var entities2 = _db2Context.Entities2.ToList();
// 其他操作...
}
}
在上述示例中,我们创建了两个DBContext类:Database1Context和Database2Context,分别对应两个不同的数据库。在Startup.cs文件中,我们使用AddDbContext方法配置了这两个DBContext类,并指定了对应的连接字符串。在MyService类中,我们通过构造函数注入了这两个DBContext类,并可以使用它们来操作不同的数据库。
领取专属 10元无门槛券
手把手带您无忧上云