Я получаю эту ошибку:
The ObjectContext instance has been disposed and can no
longer be used for operations that require a connection.
Я понимаю, почему я получаю ошибку.Однако я не понимаю, почему одна ситуация приведет к ошибке, а другая - нет.Вот две ситуации:
Случай один (вызывает ошибку):
List<SomeObject> someobjects;
using (var gm = new GenericRepository<SomeObject>())
{
someobjects = gm.Get().ToList();
}
vm.SomeObjectSelectList = slf.getSpecificList(someobjects);
То, что здесь происходит, - это когда List <> заполняется из базы данных с использованием общего репозитория.После этого список отправляется на фабрику (slf) для создания списков выбора, которые используются в модели представления (vm).При использовании таким способом возникает ошибка выше.Причина в том, что внутри фабрики есть эта строка кода:
w => w.Date + " " + w.Child.FirstName + " " + w.Child.LastName);
Хотя список некоторых объектов отправляется просто отлично, его вложенные объекты - нет, и когда вызов .Child называетсяВызывается контекст базы данных и вызывается ошибка.
Случай два (не вызывает ошибки):
List<SomeObject> someobjects;
using (var gm = new GenericRepository<SomeObject>())
{
someobjects = gm.Get().ToList();
vm.SomeObjectSelectList = slf.getSpecificList(someobjects);
}
В этом случае ошибка не вызывается.Однако из первого случая очевидно, что с базой данных связываются.
Как фабрика имеет доступ к контексту, когда контекст находится внутри хранилища?