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

blu*_*blu 2 silverlight wcf prism mvvm linq-to-sql

我不明白我的模型如何成为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

Nig*_*son 5

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

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

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

希望这可以帮助