1

我有一个使用 RIA 服务连接到数据库而不是EntitySet管理实体的客户端 silverlight 应用程序我有一个本地数据缓存,其中包含所有已加载实体的列表并且我的上下文始终为空,这允许我创建多个查询逻辑视图到同一个数据库表和更好的刷新(支持删除和处理服务器触发器的更改)。

现在我的问题是当一个实体发生变化时,我想将其附加EntitySet到服务器并将这些更改提交到服务器,Attach函数附加对象为unmodified.

所以我的问题是如何modified在 RIA 服务的客户端附加实体。我知道如何在服务器端做到这一点,但我需要在 silverlight 中做到这一点

4

2 回答 2

0

从上下文 - 使用 .Attach - 方法。这会将实体“附加”回上下文,允许上下文跟踪实体的更改。当您发出保存命令时,上下文会执行适当的命令以对服务器上的实体进行 CRUD。

尝试先附加实体,然后将 EntityState 设置为已修改。

是的 - 我应该在回答之前阅读整个问题!:)

于 2013-09-21T19:21:40.190 回答
0

您可以尝试使用 Entity 类的IEditableObject接口来解决您的问题。该接口是在实体上显式实现的,因此您必须将实例强制转换为接口。

MyEntity entity = new MyEntity();
MyEntitySet.Attach(entity);

((IEditableObject)entity).BeginEdit();
// edit the properties of the entity;
((IEditableObject)entity).EndEdit();
于 2013-09-27T08:28:24.227 回答