Возникли проблемы с нетерпением загрузки linq - PullRequest
0 голосов
/ 01 октября 2019

Моя ошибка:

System.ObjectDisposedException: 'Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.'

в этой строке:

 return ((IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<IgnoreList>("AsanaDataModel.FK_Ignore_Tasks", "IgnoreList").Value;

У меня есть две таблицы:

Task (1:0 or 1)
IgnoreList

Мой код linq выглядит следующим образом:

        using (var context = new AsanaDataEntities())
        {
            var query = from t in context.Tasks.Include("IgnoreList")
                        join i in context.IgnoreLists on t.Gid equals i.Gid into jn
                        select t;

            Console.WriteLine("Found {0} tasks.", query.Count());
            if (query.Any())
            {
                taskListView.DataSource = query;
            }
        }

Я использую запрос для источника данныхдля FastDataListView от BrightIdeasSoftware. Он должен иметь полностью загруженный запрос, потому что он находится вне контекста. Если я не пытаюсь использовать какие-либо значения из IgnoreList в FastDataListView, то все работает хорошо.

Это происходит каждый раз, когда FastDataListView пытается получить доступ к записи IgnoreList в Задаче.

Я ожидаюдобавление

.Include("IgnoreList")

в мой запрос приведет к активной загрузке всех существующих записей для IgnoreList до того, как он выйдет из контекста.

Даже если я попытаюсь:

var temp = query.ToList<AsanaDataModel.Task>();

Сразу после моего запроса я все еще получаю ту же ошибку. Что я здесь не понимаю или делаю неправильно?

1 Ответ

0 голосов
/ 01 октября 2019

Это был мой запрос. Мой запрос должен был быть:

var query = from t in context.Tasks.Include("IgnoreList")
                        select t;
...