Слой против уровня
Ваш вопрос касается слоев, а не уровней.
Уровни. Уровень - это просто физическое разделение компонентов вашего приложения.
Слои. Слои действуют как более логические разделители, которые существуют для разделения и организации вашего реального кода.Вы часто будете слышать такие термины, как «Уровень бизнес-логики», «Уровень представления» и другие.Это просто способы упорядочить весь код внутри вашего приложения.
Если у вас есть веб-приложение, содержащее ваш доступ к данным и бизнес-логику, которое работает на одном компьютере / сервере, то у вас будет 3-многоуровневое приложение в 1-уровневом.
Теперь, если ваш доступ к данным размещен на другом компьютере / сервере, а ваш бизнес также размещен на другом компьютере / сервере, то теперь у вас будет трехуровневое приложение в 3-Tier.
Установить строку подключения
Вы указали строку подключения при запуске и добавили ее в службы.Вам не нужно снова определять строку подключения и использовать контекст db, используя Built-DI.Код может выглядеть следующим образом!
Класс запуска
public static IServiceCollection AddCustomDbContext(this IServiceCollection services, IConfiguration configuration)
{
// Add DbContext using SQL Server Provider
services.AddDbContext<PaymentDbContext>(options =>
options.UseSqlServer(configuration.GetConnectionString("myconnectionstring"), x => x.MigrationsAssembly("Payment.Persistence")));
return services;
}
Класс контекста
public class PaymentDbContext : DbContext
{
public PaymentDbContext(DbContextOptions<PaymentDbContext> options)
: base(options)
{
}
public DbSet<Payments> Payments { get; set; }
}
Используйте DI для доступа к контексту
private readonly PaymentDbContext _context;
public PaymentsRepository(PaymentDbContext dbContext)
{
_context = dbContext;
}