请问各位在开发WCF时,各个实体操作类的分布是怎么样的?

浩子 2010-05-05 03:10:00
按照我们原来的经验模式,基本上在各层中都是针对每个实体开发一个单独的描述或操作文件的

在一个全Silverlight的项目中,所有数据的操作都通过WCF,如果也按这种方式的话,服务将非常之多,而且如果涉及到某两个操作类又针对同一实体的描述时,还会出现不必要的类型转换。

我也想过将所有相关实体写在同一个服务中,但好像这样这个文件又会特别的大。

不知大家除了这两种方法外,有没有更好的方法,谢谢。
...全文
66 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
websco 2010-05-16
  • 打赏
  • 举报
回复
我认为要点是得要手工在 Silverlight 端维护一份实体的定义,不能让WCF代理类每次都生成实体的定义。

我的做法就是新创建一个 Silverlight 的类库项目,如 SLLib ,第一次时由 WCF代理类自动生成实体类的定义(假定WCF代理类位于名为SLApp项目,这个项目引用SLLib),然后将这些实体类剪切至 SLLib 中,并且将实体的namespace修改成和 WCF 中的完全相同,将 EntityObject 等class的namespace改为System.Data.Objects.DataClasses (WCF端使用的实体是 ADO.NET Entity Data Model时会生成这class)。

然后重新更新服务引用,由于服务引用默认选择了“Reuse types in specified referenced assemblies”,这样在更新了服务引用之后,WCF代理类就不会再生成实体的定义了,这样,多个WCF服务引用就可以使用相同的实体定义了。

这样做的目的很明确,就是为了让“多个WCF服务引用使用相同的实体定义”,而且,这样还带来一个好处,就是可以在Silverlight端对实体进行Validation的各种Attribute标识,如[Required]、[StringLength]等。

但是这样做的问题也同样明显,WCF端的实体定义发生了变化时,得工手工去同步Silverlight端的实体定义。



还有另一种解决方法,就是使用 WCF RIA Services ,这也许是Microsoft想要大力推荐的解决方法。

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧