У меня есть несколько проверок, которые необходимо выполнить для объекта домена, для которого требуется вызов БД. Поэтому я хотел использовать свой объект репозитория в своей модели домена. Я пытался использовать внедрение зависимостей, но это не работает и дает мне ноль

public class ObjectX : Base
{
    public IObjectRepository _ObjectRepository;

    public Location(IObjectRepository objRepo)
    {
        this._ObjectRepository= objRepo;
    }
 int someProperty{get; set;}
 
 bool validateProperty()
 {
  bool isValid =_ObjectRepository.ValidateProperty(someProperty);
  return isValid;
 }

Итак, здесь objRepo становится нулевым, и, следовательно, конструктор также присваивает null _ObjectRepository. Я поместил в Startup.cs

Можно ли получить доступ к объекту репозитория здесь, в модели домена?

0
netcoredev 4 Фев 2022 в 16:39
1
Вопрос для меня, почему вы хотите это сделать. Почему бы не сделать это на сервисном уровне?
 – 
Masoud Sharifi
4 Фев 2022 в 16:51
1
Я не думаю, что ваш домен должен зависеть от вашего репозитория, но ваша проблема связана с тем, как вы регистрируете репо в контейнере IoC, поскольку вы получаете экземпляр, но он равен нулю.
 – 
Crowcoder
4 Фев 2022 в 16:51
У меня есть такой дизайн, как этот «controller-> servicelayer-> dataAccessLayer (репозитории здесь)». Будет добавлено много проверок для каждого объекта, если я сделаю это на уровне обслуживания. Должен ли я создавать определенные сервисные слои только для целей проверки. Мне нужно только проверить мои свойства по базе данных. Ничего больше.
 – 
netcoredev
4 Фев 2022 в 17:04

1 ответ

Вы добавили его в свой контейнер IoC? Вы можете сделать это в файле запуска services.AddScoped();

0
y095761 4 Фев 2022 в 17:59