通过LINQ编辑WCF数据服务的数据



我已经创建了一个小的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

最新更新