减少从Silverlight App到数据库的行程次数

时间:2013-04-01 09:28:02

标签: c# .net wcf sql-server-2008 silverlight

我正在开发一个silverlight应用程序。它有一个允许用户添加新对象的视图。绑定到此视图的viewmodel具有该对象类型的集合作为属性。 viewmodel的构造函数有一个函数,比如GetData(),它调用WCF服务并从数据库中获取数据,数据库将获取的列表添加到该集合中。

通过WCF服务向数据库添加新对象后,需要再次调用GetData方法来刷新集合,因为需要收集最新数据。

这个过程有点慢,因为每次添加任何内容时,都需要再次获取表中的整个数据。随着数据越来越大以及可能需要连接多个表来获取数据,它可能会变得更慢。

我正在考虑添加我传递给服务的对象,将其添加到数据库,直接添加到viewmodel中的集合。显然,只有当调用它的服务没有返回任何错误以确保它已成功添加到DB时,我才会将此对象添加到集合中。通过这种方式,我可以在集合中获取最新数据,而无需从数据库中获取数据。

任何人都可以指出这种方法或任何可能失败的情况的任何缺点吗? 另外,请建议是否有其他更好的方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

我经常使用我的保存方法获取并返回保存的对象。这样,如果服务/数据库层完全修改了它(创建日期,ID等等),您将获得更改。此外,如果你想更新它,它不认为它是“新的”。