注入 UnitOfWork 和 DbContext 本身是否可以?
Is it ok to inject both UnitOfWork and DbContext itself?
我正在使用 UnitOfWork 模式并且它运行良好
但因为我需要使用 UserManager 和 SinginManager
我也必须将这部分添加到 startup.cs
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(
@"Data Source="));
但是因为我使用的是 UnitOfWork 我也添加了这些行;
services.AddScoped<IUnitOfWork<MainDbContext>, UnitOfWork<MainDbContext>>();
services.AddScoped<IUnitOfWork<FinancialDbContext>, UnitOfWork<FinancialDbContext>>();
Is it OK to inject and active both ways in startup.cs?
这两个注册似乎是相关的。
第一个
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(@"Data Source=Main...."));
让容器知道如何在请求时自行解析上下文,
而第二个注册的类型很可能取决于上下文
services.AddScoped<IUnitOfWork<MainDbContext>, UnitOfWork<MainDbContext>>();
services.AddScoped<IUnitOfWork<FinancialDbContext>, UnitOfWork<FinancialDbContext>>();
以上内容也可以使用开放泛型来简化
services.AddScoped(typeof(IUnitOfWork<>), typeof(UnitOfWork<>));
它告诉容器
"When ever IUnitOfWork<SomeContext>
is request, resolve to UnitOfWork<SomeContext>
"
因此,如果您需要使用不同上下文的单元也没有错
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(@"Data Source=Main...."));
services.AddDbContext<FinancialDbContext>(p => p.UseSqlServer(@"Data Source=Financial...."));
services.AddScoped(typeof(IUnitOfWork<>), typeof(UnitOfWork<>));
除此之外,请注意 Entity Framework 已经围绕工作单元/存储库模式设计,分别具有 DbContext
和 DbSet
。
我正在使用 UnitOfWork 模式并且它运行良好 但因为我需要使用 UserManager 和 SinginManager 我也必须将这部分添加到 startup.cs
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(
@"Data Source="));
但是因为我使用的是 UnitOfWork 我也添加了这些行;
services.AddScoped<IUnitOfWork<MainDbContext>, UnitOfWork<MainDbContext>>();
services.AddScoped<IUnitOfWork<FinancialDbContext>, UnitOfWork<FinancialDbContext>>();
Is it OK to inject and active both ways in startup.cs?
这两个注册似乎是相关的。
第一个
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(@"Data Source=Main...."));
让容器知道如何在请求时自行解析上下文,
而第二个注册的类型很可能取决于上下文
services.AddScoped<IUnitOfWork<MainDbContext>, UnitOfWork<MainDbContext>>();
services.AddScoped<IUnitOfWork<FinancialDbContext>, UnitOfWork<FinancialDbContext>>();
以上内容也可以使用开放泛型来简化
services.AddScoped(typeof(IUnitOfWork<>), typeof(UnitOfWork<>));
它告诉容器
"When ever
IUnitOfWork<SomeContext>
is request, resolve toUnitOfWork<SomeContext>
"
因此,如果您需要使用不同上下文的单元也没有错
services.AddDbContext<MainDbContext>(p => p.UseSqlServer(@"Data Source=Main...."));
services.AddDbContext<FinancialDbContext>(p => p.UseSqlServer(@"Data Source=Financial...."));
services.AddScoped(typeof(IUnitOfWork<>), typeof(UnitOfWork<>));
除此之外,请注意 Entity Framework 已经围绕工作单元/存储库模式设计,分别具有 DbContext
和 DbSet
。