Я нашел такое решение моей проблемы (учитывая, что ребята помогли мне в комментариях) У меня есть статический класс с методом расширения для IServiceCollection
public static IServiceCollection RegisterRepositories(this IServiceCollection services, IConfiguration configuration)
{
services.AddScoped(typeof(IRepository<>), typeof(BaseRepository<>));
services.AddScoped(typeof(DbContext), typeof(NorthwindContext));
services.AddEntityFrameworkSqlServer()
.AddDbContext<NorthwindContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
return services;
}
У меня примерно то же самое, но дляBLL
public static class ServiceCollectionsExtensions
{
public static IServiceCollection RegisterBllServices(this IServiceCollection services, IConfiguration configuration)
{
services.RegisterRepositories(configuration);
services.AddScoped<IProductService, ProductService>();
return services;
}
}
А в Layer Presentation в Startup.cs
у меня есть что-то вроде этого
services.RegisterBllServices(_configuration);
Так что теперь Presentation Layers ничего не знает о DbContext
и что ORM
Я использую