RIA Services linq问题 - 转换输出

时间:2011-09-09 08:13:26

标签: c# silverlight linq wcf-ria-services

我正在开发Silverlight Web应用程序并使用RIA服务。域服务类的部分代码如下所示:

public IQueryable<ClassA> GetClassa()
{
     return this.ObjectContext.ClassA;
}

此服务由其中一个视图调用:

SomeContext context = new SomeContext ();
var items = context.Load(context.GetClassaQuery().
            Where(r => some condition).
            Select(r => new ClassB(
             //ClassB initialization
            )));

所以我想得到所有ClassA并根据标准创建新的ClassB然后进入Telerik图表

this._reviewedICs.ItemsSource = items;

问题在于我不能隐式地将它从一个转换为另一个。我该如何解决这个问题?

编辑:Totaly忘了'Load()'有一个'Completed'事件-_- 事件被触发后我只是在事件处理程序

中处理它
context.Load(context.GetClassaQuery()).Completed(DoSomething)
private void DoSomething(object sender, EventArgs e)
{
    List<ClassA> = context.ClassA.ToList();
    //do whatever you want :)
}

1 个答案:

答案 0 :(得分:0)

以下是如何操作的示例:

List<ClassB> allTheBs;

SomeContext ctx = new SomeContext();

LoadOperation<ClassA> loader = ctx.Load( context.GetClassaQuery().Where(...) );
loader.Completed += (s,e) =>
    {
        var entities = (s as LoadOperation<ClassA>).Entities;

        allTheBs = entities.Select ( a => new ClassB()
                {
                    a.Field1 = b.SomeField,
                    a.Field2 = b.SomeOtherField
                } );
    };