我已经创建了一个小型WCF数据服务,我可以毫无问题地添加/检索数据。
我在这个“家庭”系列上有一套,拥有所有权利:
config.SetEntitySetAccessRule("HouseHold", EntitySetRights.All);
问题在于我无法编辑:
HouseHold houseHold = entities.HouseHold.Where(h => h.IDHouseHold == varContainingAnExistingId).FirstOrDefault();
houseHold.LastName = "LastName" + DateTime.Now;
entities.SaveChanges();
我没有任何异常,我的数据在数据库中没有更新。
我错过了什么?我应该做些什么来保存我的更改?
(我的断点在entities.SaveChanges()上停止,所以我完全确定它会运行)
非常感谢
编辑,我刚看到我的DataServiceContext的APPLICATIONChanges设置为false,但它不是我可以编辑的属性,是否有我的问题的链接?
答案 0 :(得分:2)
我终于通过探索上下文的方法找到了解决方案:
使用wcf数据服务没有更改跟踪,您必须指定该对象已更改。只有在修改时才会出现此问题,因为在添加/删除时我们必须调用自动放置更改标志的特殊方法。
因此,在我的示例中,以下代码正在运行:
HouseHold houseHold = entities.HouseHold.Where(h => h.IDHouseHold == varContainingAnExistingId).FirstOrDefault();
houseHold.LastName = "LastName" + DateTime.Now;
entities.UpdateObject(houseHold);
entities.SaveChanges();
UpdateObject 是重要的变化。
答案 1 :(得分:-1)
您是否尝试过启用DataServiceConfiguration.UseVerboseErrors?