只有在本地数据库:ObjectContext实例已被处置

问题描述:

我有一个问题,而我使用Linq的异步结果。 每当我收到错误“ObjectContext实例已被处置并且不能再用于需要连接的操作”。 - 但我得到它只是在我的本地数据库,当我尝试在我们的测试数据库一切正常代码...只有在本地数据库:ObjectContext实例已被处置

我的代码:

var manufacturerData= await _manufacturerDataService.GetAllAsync(); 
    return Json(
         manufacturerData.Select(x => new 
         { 
          x.Id, 
          ManufacturerName = x.Manufacturer.Name, 
          CountryName = x.Country.Name, 
          x.ProductType, 
          ContractTypes = x.ContractTypes != null ? string.Join(" ", x.Types.Select(c => c.Name)) : "" 
         }), JsonRequestBehavior.AllowGet); 

我有我的本地测试机上的备份db,所以我不明白为什么它不起作用。

+0

'GetAllAsync'是否返回'IQueryable'?如果是这样,在'Select'的末尾添加'ToList'以确保EF查询得到评估。 – Romoku

+0

'GetAllAsync'返回'IEnumerable'。我试图添加'ToList',但现在我得到一个'对象引用没有被设置为一个对象实例'..它非常疯狂 – mg92

这个问题的解决方案是不在代码中找到 - 数据库有问题。制造商的ID在某些情况下是空的(本地)..我认为当我从测试数据库导入数据时出现了问题。