急于加载linq有问题

时间:2019-10-01 14:28:36

标签: linq eager-loading

我的错误是:

  

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;
            }
        }

我正在使用BrightIdeasSoftware的FastDataListView的数据源查询。它需要上下文完全加载的查询。如果我不尝试在FastDataListView中使用IgnoreList中的任何值,那么一切都会很好。

无论何时FastDataListView尝试访问Task中的IgnoreList记录,都会发生这种情况。

我希望添加

.Include("IgnoreList")

在我的查询中,它会急切地加载IgnoreList的所有现有记录,直到它们脱离上下文为止。

即使我尝试:

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

查询后,我仍然直接遇到相同的错误。 我在这里不明白或做错了什么?

1 个答案:

答案 0 :(得分:0)

这是我的查询。我的查询必须是:

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