Rest 使用LINQ向实体添加和更新

Rest 使用LINQ向实体添加和更新,rest,linq-to-entities,savechanges,Rest,Linq To Entities,Savechanges,我们在项目中使用L2E和REST,虽然我能够从数据库中检索数据,但我仍然无法更新或向数据库中添加新记录。我想这是一个语法问题,我们对linq还是新手,但我一直没能解决它。我们最初将数据加载到dataservicecontext中,当进行更新时,数据存储在绑定源的CurrencyManager.Current中。然而,当我调用SaveChanges时,数据库中没有任何内容被修改,我也不知道为什么 比如说, 加载数据: var customerQuery = Program.Proxy.Custo

我们在项目中使用L2E和REST,虽然我能够从数据库中检索数据,但我仍然无法更新或向数据库中添加新记录。我想这是一个语法问题,我们对linq还是新手,但我一直没能解决它。我们最初将数据加载到dataservicecontext中,当进行更新时,数据存储在绑定源的CurrencyManager.Current中。然而,当我调用SaveChanges时,数据库中没有任何内容被修改,我也不知道为什么

比如说,

加载数据:

 var customerQuery = Program.Proxy.Customers.Where(p => p.ContactId == g);
 Program.Proxy.SaveChanges();
保存数据:

 var customerQuery = Program.Proxy.Customers.Where(p => p.ContactId == g);
 Program.Proxy.SaveChanges();

我已确认正在跟踪内存中实体的更新副本,因此我不需要调用AddObject,但我收到一个错误,即关闭类型Lynxphere.WindowsClient.LynXPherateDataServices.Customers没有相应的Customers可设置属性。如果我打电话给AddLink。我甚至不确定这一步是否必要。非常感谢您的帮助。

看看我的存储库模式和保存功能,发布在下面的项目中。 实现了EntityProductRepository。 这可能会帮助您正确执行更新和插入


显示更多的代码,例如实际的修改。我不确定要显示什么。从实体中的数据库中提取的数据显示在各种文本框等中,供用户更新。我已经确认更新后的数据驻留在CurrencyManager中,但我看不出这是如何映射回db更新的实体的。如果在单个对象上下文中选择、修改和保存更改,更改将返回数据库。我认为,通过将控件直接绑定到数据源,文本框可能会有一个数据绑定“文本”字段:customersBindingSource-Contacts.LastName,跟踪更改,然后保存更改,就足以将这些更改提交给数据库。我认为这是错误的?如果原始上下文是活动的,ObjectDataSource就可以工作。在我看来,似乎您没有使用与以前选择的相同的上下文来保存,但在没有看到代码的情况下,再次很难说。