【发布时间】:2015-01-20 02:13:37
【问题描述】:
我在 azure 上有一个表,我希望更新表中的特定条目。当我尝试使用 .UpdateAsync(object) 更新表时;方法,整行被替换为空值并且指定的参数只被更新
更新代码
ipray_users data = new ipray_users {id= settings["userid"].ToString(), favorite = String.Format(globals.id + "#") };
await App.MobileService.GetTable<ipray_users>().UpdateAsync(data);
iray_users 类
class ipray_users
{
public string id { get; set; }
public int age { get; set; }
public string email { get; set; }
public string gender { get; set; }
public string country { get; set; }
public string name { get; set; }
public string favorite { get; set; }
}
【问题讨论】:
-
将所有属性指定给类对象并调用 updateAsync 将是一项繁琐的工作
-
据我所知 Azure 仅支持完全覆盖
Update调用 - 您需要先查询特定记录,更新特定字段,然后将其作为参数传递。 -
yes James,这确实是一个缺点,因为每次我进行更新时,我都必须调用服务器两次; 1 用于检索现有数据,另一个用于更新数据。如果微软能想出解决这个问题的办法,那就太好了。
-
难道你不必先拉取用户ID吗?无论如何,我同意,肯定有一个更优化的解决方案,它只会更新存在的属性。
-
如果您不想为单个字段更新获取、更新、SaveChanges 等,最好返回执行 SQL 字符串查询。或者添加一个存储过程来完成这项工作,在一个操作中,并使用 EF 调用它:)
标签: c# azure azure-mobile-services