0

我们在 WCF 服务上使用自我跟踪实体。实体在没有加载其导航属性的情况下返回给客户端。

一次发送所有导航属性或根据需要延迟加载它们是更好的主意吗?如果延迟加载,异步加载它们是个好主意吗?到目前为止,我所有的 WCF 服务调用都使用 await/async 关键字。

我对一次性加载它们有些担心,因为有些对象有很多并不总是使用的导航属性。例如,Consumer 实体目前大约有 20 个,预计会获得更多。一些示例包括地址、电话、文档和注释。用户可以设置自己的工作区,这样处理文档的人可能在消费者加载时总是需要 Documents 属性,而大多数其他人则不需要。

4

1 回答 1

1

这实际上取决于您使用实体的方式。最昂贵的将是往返服务,因此如果您有在大多数情况下使用的导航属性,您可以立即加载它们,但对于仅偶尔使用的导航属性,您可以使用“延迟加载”。您的问题的真正答案只能通过对您的应用程序和性能测试的一些重要分析来提供。

我有点害怕的是如何更新这种模型。一旦您加载了所有相关实体并从中制作了一个对象图,您可以只将图的一部分发送回服务吗?我希望你不能。

编辑:

我用“动态用户界面”阅读了你的另一个问题。因此,一旦用户启动应用程序,您可能就知道应该显示哪些 UI 小部件。您可以公开一些初始方法,该方法将传递当前打开的小部件所需的所有导航属性的描述,并在打开新小部件时加载其他属性。简单地添加小部件将需要一些时间来获取数据。仍然可以自动包含一些较小的导航数据。

于 2011-05-03T14:03:12.500 回答