zoukankan      html  css  js  c++  java
  • WCF RIA Service实体类的自定义复杂类型属性在客户端不可见

    在WCF RIA Service实体类中如果加了自定义的复杂类型,例如下面的Children属性,就是一个实体自己的一个列表:

    09.191

    如果有个DomainService返回这个StudentResult:

    09.192

    那么在Silverlight客户端,你会发现实体StudentResult的Children属性不可见。

    原因和解决方法

    原因是WCF RIA Service是对WCFService的一个封装,对需要用到的实体用DataContract标记并序列化,并且有一个自动客户端代码生成的机制。在CodeGeneration的过程中,并不是每一个属性都会被自动生成,除非必要。解决办法是你手动指定CodeGeneration,比如[Include], [Associate]等服务器端标记,标记你需要这个属性,标记这个属性和其它实体的联系(外键关联比如)。

    09.193

    这样在Silverlight客户端就会自动获得实体的复杂对象。此处使用了[Include], [Associate]标记指定了属性需要CodeGeneration。

    继承的情况

    继承的情况下,也是没有问题的,看一个复杂一点的继承的代码:

    09.194

     

    继承并返回基类的情况

    上面的继承例子是在DomainService里面返回继承类,如果是返回基类(抽象类或者接口)到客户端的话,WCF序列化情况要复杂一些。需要用WCF的已知类型(Known Type)标记,具体请看MSDN和园友博文。有关WCF RIA Service的继承数据模型,完整请察看MSDN这篇文章《Inheritance in Data Models》

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    整型
    圆的面积和周长
    买菜
    keil 生成 bin 文件 gd32为例
    内存中 1k 代表什么
    正反转 步进电机 驱动器 编码器
    stlink 无法再keil中识别 按下复位键可以识别
    单片机的时钟,系统时钟
    db9串口接头的定义
    E面波导和H面波导的问题
  • 原文地址:https://www.cnblogs.com/Areas/p/2186619.html
Copyright © 2011-2022 走看看