Asp.net mvc 将DbQuery返回到需要IEnumerable的视图

Asp.net mvc 将DbQuery返回到需要IEnumerable的视图,asp.net-mvc,entity-framework-4,Asp.net Mvc,Entity Framework 4,问题: 异常详细信息:System.InvalidOperationException:模型项 传入字典的类型为 'System.Data.Entity.Infrastructure.DbQuery'1[System.Int32]',但 字典需要类型为“migros.Models.State”的模型项 我想做的事 我需要将以下linq查询的结果传递给视图 using (var db = new migros_mockEntities1()) { var l

问题:

异常详细信息:System.InvalidOperationException:模型项 传入字典的类型为 'System.Data.Entity.Infrastructure.DbQuery'1[System.Int32]',但 字典需要类型为“migros.Models.State”的模型项

我想做的事

我需要将以下linq查询的结果传递给视图

using (var db = new migros_mockEntities1())
        {
            var listOfIdeas = (from x in db.States select x.ID); 

            return View(listOfIdeas);
        }
视图需要
IEnumerable
,但似乎无法将linq查询的结果强制转换为
IEnumerable

我使用实体框架数据库优先的方法

问题在于您试图从using块中返回ObjectQuery。 尝试具体化对象集

var listOfIdeas = (from x in db.States select x.ID).ToList(); 
另外,别忘了,处理上下文可能很棘手。
在您的例子中,
var listOfIdeas=(从db.States中的x选择x.ID)
只是一个查询,只有在您开始迭代它时才会运行。因此,如果上下文已经被释放,您将得到一个异常,尝试使用
listOfIdeas

我得到一个异常,它表示我正在尝试传递System.Collections.Generic.List类型的对象,并且它需要System.Collections.Generic.IEnumerableEureka类型的对象!就是这样,视图需要一个由我定义的类型的对象,并且,愚蠢的我,我向它发送了一个int。谢谢你的帮助。