我在AppDbContext
中创建了构造函数,并且在UnitofWork
中实现了上下文,它将字符串传递给上下文但是当我注册{时,如何将连接字符串传递给 startup.cs {1}}。 unitofwork
和Repository
位于不同的项目中
以下是我的代码,
连接字符串到构造函数
UnitOfWork
UnitOfWork构造函数
private readonly string _connection;
public AppDbContext(string connection)
{
_connection=connection;
}
在 StartUp.cs 中,我可以传递下面的连接字符串,从 appsettings.json 读取吗?
public UnitOfWork(string connection)
{
_context = new AppDbContext(connection);
}
答案 0 :(得分:5)
public class UnitOfWork : IUnitOfWork {
private readonly AppDbContext _context;
public UnitOfWork(AppDbContext context) {
_context = context;
}
//...other code removed for brevity
}
使用以下示例创建数据库上下文。
public class AppDbContext : DbContext {
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) {
}
//...other code removed for brevity
}
然后注册所有内容,包括依赖注入的上下文
public void ConfigureServices(IServiceCollection services) {
services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddTransient<IUnitOfWork, UnitOfWork>();
services.AddMvc();
}
配置从 appsettings.json 文件中读取连接字符串。
{
"ConnectionStrings": {
"DefaultConnection": "connection string here"
}
}