使用LINQ实体而不是OData,SaveChanges不会做任何事情

时间:2012-03-07 15:09:26

标签: c# wcf linq odata

在某些情况下,我已经能够使用UpdateObject欺骗它来检测更改:

public UpdateOrderDescription(int userId)
{
    var entities = new DatabaseEntities(new Uri("http://SomeServer/OrderService.svc")) { UsePostTunneling = true};

    var order = (from o in entities.Orders where o.UserId == userId select o).Single();

    order.Description = "Hello";
    entities.UpdateObject(order);
    entities.SaveChanges();
}

但是当使用导航属性使用多对多关系时,这不起作用,因为我无法在导航属性上执行UpdateObject。

1 个答案:

答案 0 :(得分:1)

看一下这篇文章:http://msdn.microsoft.com/en-us/library/dd756361.aspx

简而言之,WCF DS的客户端库需要通知您要进行的更改。默认情况下,在上下文中使用UpdateObject,SetLink,AddLink和类似方法完成。