【发布时间】:2013-04-01 09:28:01
【问题描述】:
我正在开发一个 Silverlight 应用程序。它有一个允许用户添加新对象的视图。绑定到此视图的视图模型具有该对象类型的集合作为属性。 viewmodel 的构造函数有一个函数,比如 GetData(),它调用 WCF 服务并从数据库中获取数据,它将获取的列表添加到该集合中。
通过 WCF 服务向数据库添加新对象后,需要再次调用 GetData 方法来刷新集合,因为集合中必须有最新的数据。
这个过程有点慢,因为每次添加任何内容时,都需要再次从表中获取整个数据。随着数据变得越来越大,并且可能需要连接多个表来获取数据,它可能会变得更慢。
我正在考虑将传递给服务的对象添加到数据库中,直接添加到 viewmodel 中的集合中。显然,只有在调用它的服务没有返回任何错误以确保它已成功添加到数据库时,我才会将此对象添加到集合中。这样我就可以收集到最新的数据,而无需从数据库中获取它。
谁能指出这种方法的任何缺点或可能失败的任何场景? 另外,请建议是否有其他更好的方法来实现这一目标。
【问题讨论】:
-
只使用 WCF-Ria 服务。他们跟踪变更集,您无需更新或插入记录并将其回调。变更集知道发生了什么变化并通过 WCF 二进制最小化网络传输。
-
谢谢达武特。我的应用程序不使用 RIA 服务,尽管它使用 Linq2Sql,我想我也可以使用变更集。谢谢。
标签: c# .net wcf sql-server-2008 silverlight