【问题标题】:RIA Services Invoke Operation return Complex Type with Entity propertiesRIA 服务调用操作返回具有实体属性的复杂类型
【发布时间】:2012-03-09 06:57:03
【问题描述】:

看看这个复杂的类型,它基本上是一个包装了一些实体的 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; }
}

现在看看这个:

http://i.snag.gy/tI9O9.jpg

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

顺便说一下,这些实体类型是在客户端上生成的,因为与它们一起使用的域服务中的正常查询操作。

【问题讨论】:

  • 我遇到了同样的问题。看起来您不能将实体或实体集合作为复杂类型的一部分,无论您是否在它们上放置了 DataMember 属性。我正在使用 RIA 服务 v1.0 SP1。不知道是不是SP2中添加的。

标签: silverlight entity-framework wcf-ria-services


【解决方案1】:

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

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

【讨论】:

  • RIA 服务已添加到“列表”中。
猜你喜欢
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多