我目前正在尝试在n层方案中使用STE。我有一个WCF服务,它允许我检索对象图和/或更新对象,以及一个客户端(WPF)应用程序,它允许我编辑该图的各个方面,并将更改提交回该服务。
我的问题是;我检索的对象图非常大-有时包括图像-但我的更新很少。但是,当我提交更新时,由于对象之间的关系,整个图被提交回服务。
例如,给定一个Customer/Order/OrderDetail场景:我检索一个客户及其订单和相关的OrderDetails (3个级别)。然后,我更新单个OrderDetail,可能会更改数量。我通过一个带有OrderDetail对象的WCF方法提交了要更新的OrderDetail,但是序列化遵循关系属性,不仅序列化了更改后的OrderDetail,还序列化了所有Orders、OrderDetails和customer。
当服务调用参数被序列化时,我如何才能阻止所有这些被回传,而只是回传要更新的对象,而不遵循关系呢?
我能找到的所有STE示例(仍然不多)似乎都是为了传递所有相关的对象而设计的(比如在线的blog/postings示例)。
发布于 2012-06-29 11:07:41
正如您所知道的,ObjectStateManager管理对象状态,特别是在n- the应用程序上,要更新特定对象,请使用以下方法:
-接受枚举EntityState:
检查链接:http://msdn.microsoft.com/en-us/magazine/ee321569.aspx
发布于 2011-03-15 01:52:05
如果您不希望所有数据都被传递,则必须使用较小的集合。因此,如果默认情况下检索Customer +其所有订单+所有订单详细信息,那么它就是您的工作集。如果您只想使用单个订单创建操作,以仅获取该订单及其详细信息。
它在某种程度上与聚合根相关。Order是订单项的聚合根,因为在没有order的情况下处理单个项没有太多意义。但是,在没有客户的情况下处理订单可能是可能的,不是吗?
https://stackoverflow.com/questions/5301884
复制相似问题