gpt4 book ai didi

c# - 如何将连接字符串从startup.cs asp.net core传递到UnitOfWork项目

转载 作者:行者123 更新时间:2023-12-02 02:10:54 24 4
gpt4 key购买 nike

我在AppDbContext中创建了构造函数,并且上下文在UnitofWork中实现,它将字符串传递给上下文,但如何将连接字符串传递给startup.cs 当我注册 unitofwork 时。 RepositoryUnitOfWork 位于不同的项目

以下是我的代码,

构造函数的连接字符串

private readonly string _connection;
public AppDbContext(string connection)
{

_connection=connection;

}

UnitOfWork 构造函数

public UnitOfWork(string connection)
{
_context = new AppDbContext(connection);
}

StartUp.cs中,我可以传递下面的连接字符串,从appsettings.json读取吗?

 services.AddTransient<IUnitOfWork, UnitOfWork>();

最佳答案

不要那样做。如果已使用 DI,则将上下文注入(inject) UOW 并在启动期间配置上下文。

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
}

然后,您可以通过依赖注入(inject)注册所有内容,包括上下文

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"
}

}

关于c# - 如何将连接字符串从startup.cs asp.net core传递到UnitOfWork项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45535311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com