В .NET 8.0 каков правильный способ создания служб CRUD? [закрыто] ⇐ C#
-
Anonymous
В .NET 8.0 каков правильный способ создания служб CRUD? [закрыто]
Я создаю свои операции CRUD, создавая службу и интерфейс для каждой службы. Затем я привязываю свой интерфейс как внедрённую зависимость на своих страницах и вызываю нужные мне функции CRUD.
Это работает, но кажется неправильным, как будто моему обновлению всегда нужен трекер изменений.
Мой вопрос: есть ли лучшие/более разумные решения для операций CRUD в .NET 8.0?
Вот пример кода одного из моих сервисов:
private ReciptDBContext _context; общедоступный ReciptService (контекст ReciptDBContext) { _контекст = контекст; } //Добавляем новую квитанцию в БД -> получаем данные как параметр из формы общедоступная асинхронная задача AddReciptAsync (получение квитанции) { если (рецепт == ноль) возврат; ждут _context.Recipts.AddAsync(новый рецепт() { Имя = квитанция.Имя, CategoryId = recipt.CategoryId, UserId = recipt.UserId, Описание=рецепт.Описание, }); ждут _context.SaveChangesAsync(); } //Загрузить все рецепты общедоступная асинхронная задача GetAllReciptsAsync() { возвращение ждут _context.Recipts.ToListAsync(); } //Загружаем рецепт с точным идентификатором общедоступная асинхронная задача GetReciptAsync (int Id) { return await _context.Recipts.FirstOrDefaultAsync(p => p.Id == Id); } общедоступная асинхронная задача DeleteReciptAsync (int Id) { вар получение = ждут GetReciptAsync (Id); если (рецепт == ноль) возврат; _context.Recipts.Remove(квитанция); ждут _context.SaveChangesAsync(); } //Обновить этот рецепт общедоступная асинхронная задача UpdateReciptAsync (получение квитанции) { _context.ChangeTracker.Clear(); _context.Recipts.Update(квитанция); ждут _context.SaveChangesAsync(); } Изменить: я добавляю их как ограниченные:
builder.Services.AddScoped();
Я создаю свои операции CRUD, создавая службу и интерфейс для каждой службы. Затем я привязываю свой интерфейс как внедрённую зависимость на своих страницах и вызываю нужные мне функции CRUD.
Это работает, но кажется неправильным, как будто моему обновлению всегда нужен трекер изменений.
Мой вопрос: есть ли лучшие/более разумные решения для операций CRUD в .NET 8.0?
Вот пример кода одного из моих сервисов:
private ReciptDBContext _context; общедоступный ReciptService (контекст ReciptDBContext) { _контекст = контекст; } //Добавляем новую квитанцию в БД -> получаем данные как параметр из формы общедоступная асинхронная задача AddReciptAsync (получение квитанции) { если (рецепт == ноль) возврат; ждут _context.Recipts.AddAsync(новый рецепт() { Имя = квитанция.Имя, CategoryId = recipt.CategoryId, UserId = recipt.UserId, Описание=рецепт.Описание, }); ждут _context.SaveChangesAsync(); } //Загрузить все рецепты общедоступная асинхронная задача GetAllReciptsAsync() { возвращение ждут _context.Recipts.ToListAsync(); } //Загружаем рецепт с точным идентификатором общедоступная асинхронная задача GetReciptAsync (int Id) { return await _context.Recipts.FirstOrDefaultAsync(p => p.Id == Id); } общедоступная асинхронная задача DeleteReciptAsync (int Id) { вар получение = ждут GetReciptAsync (Id); если (рецепт == ноль) возврат; _context.Recipts.Remove(квитанция); ждут _context.SaveChangesAsync(); } //Обновить этот рецепт общедоступная асинхронная задача UpdateReciptAsync (получение квитанции) { _context.ChangeTracker.Clear(); _context.Recipts.Update(квитанция); ждут _context.SaveChangesAsync(); } Изменить: я добавляю их как ограниченные:
builder.Services.AddScoped();
Мобильная версия