Asp.net mvc 将DbQuery返回到需要IEnumerable的视图
问题: 异常详细信息:System.InvalidOperationException:模型项 传入字典的类型为 'System.Data.Entity.Infrastructure.DbQuery'1[System.Int32]',但 字典需要类型为“migros.Models.State”的模型项 我想做的事 我需要将以下linq查询的结果传递给视图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
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。谢谢你的帮助。