Wcf 自定位实体-如何更新导航属性?

Wcf 自定位实体-如何更新导航属性?,wcf,silverlight,entity-framework,data-binding,self-tracking-entities,Wcf,Silverlight,Entity Framework,Data Binding,Self Tracking Entities,我正在使用EF和自跟踪实体开发一个应用程序。由于STE不支持延迟加载,在更改外键后更新实体导航属性的首选方法或最佳实践是什么?这里解释如下: 当您通过设置外键属性更改对象之间的关系时,引用导航属性设置为null,并且不同步到客户端上相应的主体实体。在图形附加到对象上下文之后(例如,在调用ApplyChanges方法之后),将同步外键属性和导航属性。“ 这一问题已在这里得到解决: 但这真的是最好的方法吗?你们用过或能想到哪些方法来绕过这个限制?我发现很难相信有人在使用自跟踪实体,如果在您的数据

我正在使用EF和自跟踪实体开发一个应用程序。由于STE不支持延迟加载,在更改外键后更新实体导航属性的首选方法或最佳实践是什么?这里解释如下:

当您通过设置外键属性更改对象之间的关系时,引用导航属性设置为null,并且不同步到客户端上相应的主体实体。在图形附加到对象上下文之后(例如,在调用ApplyChanges方法之后),将同步外键属性和导航属性。“

这一问题已在这里得到解决:

但这真的是最好的方法吗?你们用过或能想到哪些方法来绕过这个限制?我发现很难相信有人在使用自跟踪实体,如果在您的数据网格中显示导航属性并在您更改记录时将其设置为null是如此困难。发生这种情况时,在我的应用程序中它看起来很时髦。当然,我可以在保存后返回服务器并更新这些属性,但是在我调用服务器上的save之前,我的datagird中会有一堆空导航属性

例如,我有一个master details场景,在该场景中,我的用户从datagrid中选择一条记录,然后在下面的表单中编辑它。更改组合框绑定到的外键时,绑定到datagrid中导航属性的记录将设置为null。当外键更改时,如何避免此行为并更新导航属性

如果我试图通过设置导航属性而不是外键来更改关系,则在尝试提交更改时会出现以下异常:

“由于对象键值与ObjectStateManager中的另一个对象冲突,AcceptChanges无法继续。在调用AcceptChanges之前,请确保键值是唯一的。”

无法将主详细信息数据网格绑定到实体的导航属性吗?我们将非常感谢您对克服这一问题的任何帮助或指导


谢谢

关于这类问题的信息似乎很少,这有点令人沮丧。最后,我根据这篇博文中的#2建议,将我的服务调用分组到一个方法中,从而找到了答案:

问题是,如果我想返回数据库并重新加载数据,我还必须重新加载任何查找表,以便它们返回到同一个图中以避免错误。我希望这在STE的未来版本中有所改变