今天在编码时碰到的小问题:利用上下文对象 context 在进行删除或者更新时总是报这个错误。弄了半天才发现自己在更新和删除时没有首先先取值,直接进行了更新。
public void Update(AzureOrderEn en)
{
var context = new AzureHelper().getContext();
context.UpdateObject(azureOrdEn);
context.SaveChanges();
}出错的代码如上。其实提示说的很明确,在该上下文里根本不存在该对象,更新什么东西?你应该首先把该对象加载出来,改变对象数值,然后再UpdateObject该对象。public void Update(AzureOrderEn en)
{
var context = new AzureHelper().getContext();
var query = context.CreateQuery<AzureOrderEn>("AzureOrder").Where(c => c.RowKey == en.RowKey).ToList();
AzureOrderEn azureOrdEn = query.FirstOrDefault();
azureOrdEn.amount = en.amount;
context.UpdateObject(azureOrdEn);
context.SaveChanges();
}这样问题就解决了,删除数据也是一样的。先在上下文里把该对象加载出来,再context.DeleteObject(azureOrdEn);最后save。这样每次相当于要读写连接两次数据库,效率不高,好像有更好的办法,可惜我看不懂。。我是菜狗也不大懂。什么Attach ,感兴趣的自己弄去吧。。
文章详细介绍了在使用Azure上下文对象进行数据更新和删除时遇到的错误,通过加载对象后再进行操作的方法成功解决问题,并讨论了效率问题及可能存在的优化策略。
1646

被折叠的 条评论
为什么被折叠?



