Я хочу иметь один репозиторий для всех моих классов/сущностей. Все контроллеры из приложения MVC должны иметь возможность использовать этот репозиторий без создания новых экземпляров. Репозиторий должен иметь извлеченный интерфейс для тестирования или в других целях, поэтому класс репозитория не будет статическим, поскольку статические классы не могут реализовать интерфейсы. Тем не менее, он будет иметь статическое свойство, которое будет доступно без создания экземпляра класса Repository. Конструктор может быть избыточным или заменен методом. Пожалуйста, дайте мне знать, если это хорошая реализация или плохая практика. Или дайте мне знать, если можно было бы как-то улучшить:Определение репозитория для лучшей практики MVC
public class Repository : IRepository
{
private MyDBContext context;
private static Repository _instance;
public static Repository Instance
{
get
{
if(_instance == null)
{
_instance = new Repository(new MyDBContext());
}
return _instance;
}
}
public Repository(MyDBContext context)
{
this.context = context;
if(_instance == null)
{
_instance = new Repository(context);
}
}
...
}
после использования большего количества dbContext, я обнаружил, что совместное использование экземпляра dbContext не является хорошим из-за проблем параллелизма или побочных эффектов удаления. Поэтому то, что я намеревался, не должно быть сделано в любом случае, остерегайтесь! –