Как внедрить зависимость в конструктор класса модели в ASP.NET MVC 3 с Entity Framework 4.1? - PullRequest
2 голосов
/ 19 августа 2011

EF требует конструктора без параметров, но можно ли это как-то переопределить?

public class MyModelClass
{
   ADependency _a;
   public MyModelClass(ADependency a)
   {
      _a = a;
   }
   ...
}

Так что, когда клиент делает запрос вроде:

var myModelClasses = context.MyModelClasses;

каждый класс создается с добавлением зависимого экземпляра.

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

Нет, невозможно переопределить. EF должен использовать конструктор без параметров, и это поведение не может быть изменено, потому что нет никакого способа использовать пользовательские фабрики. Вы можете использовать решение с шаблоном поиска служб, упомянутым @Kevin, или вы можете обработать событие ObjectMaterialized и установить зависимость через свойство вашей сущности.

2 голосов
/ 19 августа 2011

Вы можете использовать пустой конструктор, использовать DependencyResolver и сделать это В конструкторе.

public class MyModelClass
{
   ADependency _a;
   public MyModelClass()
   {

            _a = DependencyResolver.Current.GetService<_a>();
   }
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...