我有一个客户端silverlight应用程序,它使用RIA服务连接到数据库
而不是EntitySet
来管理实体我有一个包含所有已加载实体列表的本地数据缓存,并且我的上下文总是为空,这允许我创建多个查询,将多个逻辑视图放入同一个数据库表中,并且更好刷新(支持删除和处理服务器触发更改)。
现在我的问题是当实体发生变化并且我想将其附加到EntitySet
并将这些更改提交到服务器时,Attach
函数将对象附加为unmodified
。
所以我的问题是如何将实体作为modified
附加在RIA服务的客户端。我知道如何在服务器端执行此操作,但我需要在silverlight中执行此操作
答案 0 :(得分:0)
从上下文中 - 使用.Attach - 方法。这将"附加"实体返回上下文,允许上下文跟踪实体的更改。发出save命令时,上下文执行适当的命令以CRUD服务器上的实体。
首先尝试附加实体,然后将EntityState设置为Modified。
是的 - 我应该在回答之前阅读整个问题! :)
答案 1 :(得分:0)
您可以尝试使用Entity类的IEditableObject接口来解决您的问题。接口在Entity上显式实现,因此您必须将实例强制转换为接口。
MyEntity entity = new MyEntity();
MyEntitySet.Attach(entity);
((IEditableObject)entity).BeginEdit();
// edit the properties of the entity;
((IEditableObject)entity).EndEdit();