问题:
异常详细信息:System.InvalidOperationException:模型项 传入字典的类型 'System.Data.Entity.Infrastructure.DbQuery`1 [System.Int32]',但是这个 dictionary需要“migros.Models.State”类型的模型项。
我正在尝试做什么
我需要将以下linq查询的结果传递给View。
using (var db = new migros_mockEntities1())
{
var listOfIdeas = (from x in db.States select x.ID);
return View(listOfIdeas);
}
视图需要IEnumerable
,但似乎我无法将linq查询的结果强制转换为IEnumerable
。
我正在使用实体框架数据库的第一种方法。
答案 0 :(得分:1)
问题是您尝试从using块中返回ObjectQuery。 尝试实现对象集
var listOfIdeas = (from x in db.States select x.ID).ToList();
另外,不要忘记,处理上下文可能很棘手。
在您的情况下,var listOfIdeas = (from x in db.States select x.ID)
只是一个查询,只有在您开始迭代它时才会运行。因此,如果已经处理了上下文,则会遇到异常,尝试使用listOfIdeas
。