Dotnet EF: где разместить методы, связанные с БД?C#

Место общения программистов C#
Anonymous
Dotnet EF: где разместить методы, связанные с БД?

Сообщение Anonymous »

Я только начал работать над приложением CRUD для dotnet и задавался вопросом, куда следует использовать методы базы данных. Мы научились использовать отдельный класс-контейнер для каждой модели, в котором есть такие методы, как «Удалить», «Обновить», «Редактировать» и т. д.
Я также читал, что вы можете использовать класс модели вместо отдельного класса-контейнера, но я не уверен. как это будет работать.
Предположим, у меня есть следующая модель:

Код: Выделить всё

public class Student
{
public int Id { get; set; }
public string? Name { get; set; }
public DateOnly Birthday { get; set; }
}
Тогда я бы создал контейнер, выглядящий примерно так:

Код: Выделить всё

public class StudentContainer
{
private readonly ApplicationDbContext _context;

public StudentContainer(ApplicationDbContext context) => _context = context;

public Student GetById(int id)
{
...
}

public void Update(Student s)
{
...
}

...
}
Теперь вопрос: действительно ли целесообразно помещать эти методы GetById и Update в класс модели? Если да, то как мне использовать dbContext? Это статический атрибут?
Все ответы и советы приветствуются.
Я предполагаю использовать конструктор для Student, который принимает dbContext в качестве аргумента. это недопустимое решение.

Подробнее здесь: https://stackoverflow.com/questions/787 ... ed-methods

Вернуться в «C#»