我正在尝试更新使用IQueryable
来搜索我的linq到类datacontext的值,为什么我要尝试:
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
}
答案 0 :(得分:2)
问题是您没有修改原始集合。调用AsEnumarable正在创建一个新集合,因此您正在更改原始数据上下文无法看到的属性列表。
尝试这样......
foreach( var record in dinner.GetRecords(id).Where(d=>d.Year == Yearpassed))
{
record.Year='2000';
}
dinner.Save();
基本上,我刚刚删除了AsEnumarble()部分
如果这不起作用,那么我怀疑我们应该看看你的GetRecords()方法中的代码