Silverlight RIA服务调用操作返回具有实体属性的复杂类型

Silverlight RIA服务调用操作返回具有实体属性的复杂类型,silverlight,entity-framework,wcf-ria-services,Silverlight,Entity Framework,Wcf Ria Services,看看这个复杂类型,它基本上是一个封装了一些实体的DTO。我不需要跟踪这些实体,也不需要使用更新或其他任何东西,我只想将它们发送到客户端。顶部的东西是非实体的,只是为了让我知道我不是疯子 public class ResultDetail { // non entities (some are even complex) - this works GREAT! public string WTF { get; set; } public IEnumerable<int

看看这个复杂类型,它基本上是一个封装了一些实体的DTO。我不需要跟踪这些实体,也不需要使用更新或其他任何东西,我只想将它们发送到客户端。顶部的东西是非实体的,只是为了让我知道我不是疯子

public class ResultDetail
{
    // non entities (some are even complex) - this works GREAT!
    public string WTF { get; set; }
    public IEnumerable<int> WTFs { get; set; }
    public SomethingElse StoneAge { get; set; }
    public IEnumerable<SomethingElse> StoneAgers { get; set; }


    // these are entities - none of this works
    public EntityA EntityA { get; set; }
    public IEnumerable<EntityB> EntityB { get; set; }
}

public class SomethingElse
{
    public int ShoeString { get; set; }
}
公共类结果详细信息
{
//非实体(有些甚至很复杂)-这非常有效!
公共字符串WTF{get;set;}
公共IEnumerable WTF{get;set;}
公共某物石器时代{get;set;}
公共IEnumerable stoneager{get;set;}
//这些都是实体——这些都不起作用
public EntityA EntityA{get;set;}
公共IEnumerable EntityB{get;set;}
}
公共类某物
{
公共int小额资本{get;set;}
}
现在看看这个:

客户端生成的类型上没有显示单个实体属性。我是否可以或确实需要为这些实体类型中的每一种创建DTO对象?在我的示例中有两个以上的as,它们有许多属性


顺便说一句,由于域服务中的正常查询操作,这些实体类型是在客户端生成的。

这是不可能的,因为当前的Ria服务框架主要用于跟踪实体,对于Ria服务,无法检测哪些属性需要序列化,哪些属性需要注意,因为每个实体都有导航属性,序列化属性可能会导致无限循环或长循环,因为无法控制如何导航对象图


相反,您需要以这样的方式对客户机进行编程,以便正确地按需加载关系

我也有同样的问题。看起来您不能将实体或实体集合作为复杂类型的一部分,而不管您是否将DataMember属性放在它们上。我正在使用riaservicesv1.0sp1。我不知道它是否已添加到SP2中。RIA服务已添加到“列表”中