Мне нравится EntityFramework. Обычно я создаю сервисный класс (макет), чтобы поместить туда логику взаимодействия с базой данных. Это выглядит так:
public class UserService
{
MyDbContext _context;
public UserService(MyDBContext context)
{
_context = context;
}
public void MoveUserToGroup(User user, Group group)) { ... }
}
И я использую это где-то в моем коде:
userService.MoveUserToGroup(User user, Group group);
Это хорошо, но я бы хотел, чтобы мои занятия выглядели так:
public class User
{
// ...
public void AddTo(Group group) { ... }
}
public class Group
{
// ...
public void Add(User user) { ... }
}
И я хочу использовать это так:
user.AddToGroup(group);
Каков наилучший способ сделать это? DI? Расширения? Как сохранить контекст базы данных в моих классах?