我正在开发一个silverlight应用程序。它有一个允许用户添加新对象的视图。绑定到此视图的viewmodel具有该对象类型的集合作为属性。 viewmodel的构造函数有一个函数,比如GetData(),它调用WCF服务并从数据库中获取数据,数据库将获取的列表添加到该集合中。
通过WCF服务向数据库添加新对象后,需要再次调用GetData方法来刷新集合,因为需要收集最新数据。
这个过程有点慢,因为每次添加任何内容时,都需要再次获取表中的整个数据。随着数据越来越大以及可能需要连接多个表来获取数据,它可能会变得更慢。
我正在考虑添加我传递给服务的对象,将其添加到数据库,直接添加到viewmodel中的集合。显然,只有当调用它的服务没有返回任何错误以确保它已成功添加到DB时,我才会将此对象添加到集合中。通过这种方式,我可以在集合中获取最新数据,而无需从数据库中获取数据。
任何人都可以指出这种方法或任何可能失败的情况的任何缺点吗? 另外,请建议是否有其他更好的方法来实现这一目标。
答案 0 :(得分:0)
我经常使用我的保存方法获取并返回保存的对象。这样,如果服务/数据库层完全修改了它(创建日期,ID等等),您将获得更改。此外,如果你想更新它,它不认为它是“新的”。