我已经创建了一个小的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()上,所以我完全确定它运行)
Thank you very much
编辑,我刚刚看到我的DataServiceContext的ApplyingChanges被设置为false,但它不是我可以编辑的属性,是否有我的问题的链接?
我最终通过探索上下文的方法找到了解决方案:
wcf数据服务没有更改跟踪,然后您必须指定对象已更改。这个问题只在修改时发生,因为在添加/删除时,我们必须调用特殊方法来自动放置更改标志。
在我的例子中,下面的代码是有效的:HouseHold houseHold = entities.HouseHold.Where(h => h.IDHouseHold == varContainingAnExistingId).FirstOrDefault();
houseHold.LastName = "LastName" + DateTime.Now;
entities.UpdateObject(houseHold);
entities.SaveChanges();
UpdateObject是重要的变化
您是否尝试启用dataservicconfiguration . useverboseerrors ?
http://msdn.microsoft.com/en-us/library/system.data.services.dataserviceconfiguration.useverboseerrors.aspx