我正在尝试更新我使用IQueryable
来搜索我的linq到类数据上下文的值,我为什么要尝试:
var records= dinner.GetRecords(id).WHERE(d=>d.Year == Yearpassed).AsEnumerable()//returns IQUERYABLE<t>
foreach( var record in records)
{
record.Year='2000'
}
dinner.Save(); //this just does a db.SubmitChanges()
然后我对数据进行另一次查询并将其绑定到gridview和记录数据是相同的
var records= dinner.GetRecords(id);
gridview1.DataSource =records;
gridview1.DataBind();
public IQueryable<dinners> GetRecords(string id)
{
return from dinner in db.dinners
where dinner.id =id
select dinner
}
问题是您没有修改原始集合。调用asenumerable是在创建一个新的集合,因此您正在更改原始数据上下文无法看到的属性列表。
像这样试试…
foreach( var record in dinner.GetRecords(id).Where(d=>d.Year == Yearpassed))
{
record.Year='2000';
}
dinner.Save();
实际上,我只是删除了AsEnumarble()部分
如果这不起作用,那么我怀疑我们应该需要查看GetRecords()方法中的代码