我正在使用ASP.net 4.5 ListView使用数据实体来填充控件 当我使用下面的C#代码编辑记录时,它不会保存更改。代码编译时没有任何错误,如果我单步执行代码,它会拉出我正在编辑的记录,但不会保存更改。这是代码:
public void ListView1_UpdateItem(int LinkAnalysisID)
{
LinkAnalysis.LinkAnalysi item = null;
using (LAEntities db = new LAEntities())
{
// Load the item here, e.g. item = MyDataLayer.Find(id);
item = db.LinkAnalysis.SingleOrDefault(uu => uu.LinkAnalysisId == LinkAnalysisID);
if (item == null)
{
// The item wasn't found
ModelState.AddModelError("", String.Format("Item with id {0} was not found", LinkAnalysisID));
return;
}
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here, e.g. MyDataLayer.SaveChanges();
db.SaveChanges();
}
}
}
非常感谢任何帮助。
经过进一步研究后,我将我的代码编辑为下面显示的内容。
public void ListView1_UpdateItem(int LinkAnalysisID)
{
LinkAnalysis.LinkAnalysi item = null;
using (LAEntities db = new LAEntities())
{
// Load the item here, e.g. item = MyDataLayer.Find(id);
item = db.LinkAnalysis.Find(LinkAnalysisID);
//item = db.LinkAnalysis.SingleOrDefault(uu => uu.LinkAnalysisId == LinkAnalysisID);
if (item == null)
{
// The item wasn't found
ModelState.AddModelError("", String.Format("Item with id {0} was not found", LinkAnalysisID));
return;
}
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes here, e.g. MyDataLayer.SaveChanges();
db.SaveChanges();
}
}
}
我仍然得到代码运行相同的结果,但更改不会保存到数据库中。