MVVM& WCF - 查看模型和模型关系

时间:2009-08-07 03:08:22

标签: wcf silverlight linq-to-sql mvvm prism

我不了解我的模型如何成为WCF服务。当它驻留在客户端上的Astoria部分类允许远程调用执行持久性调用时,它是有意义的,但是WCF服务没有可用于更新数据存储的模型字段的属性。

即使我可以将模型/域对象类的接口分解为单独的程序集,silverlight项目也不允许我将其添加为引用。

我的ViewModel应如何包含我的WCF调用?最终WCF将调用在Linq-to-Sql中实现的存储库程序集,但显然这些实体在这种情况下不是我的模型,我的WCF类是什么?

感谢您提供任何指导。

另外,我读过的帖子提供了一个参考框架:

  1. http://development-guides.silverbaylabs.org/Video/Silverlight-Prism#videolocation_0
  2. http://blogs.conchango.com/davidwynne/archive/2008/12/15/silverlight-and-the-view-viewmodel-pattern.aspx
  3. http://msdn.microsoft.com/en-us/magazine/dd458800.aspx

1 个答案:

答案 0 :(得分:5)

在Silverlight项目中创建对WCF服务的服务引用时,它还会为该服务生成一个接口,这与上面列出的文章中的David Wynns IFeedService类似。服务引用还将生成代表服务使用的对象的代理对象(产品,类别等)。

需要注意的重要一点是服务接口不是模型,而是访问模型的方式。回到大卫的例子,他的ViewModel公开了一个项目列表(他的模型),这个列表是使用该服务检索的。

如果您想在客户端和服务器之间共享代码,我建议您查看RIA Services之类的内容。如果这不适合你,那么我会看一些关于在服务器和客户端之间共享代码的文章(通过Add as Link)。

希望这有帮助