C# RIA服务linq问题-转换输出
我正在开发Silverlight Web应用程序并使用RIA服务。域服务类的部分代码如下所示:C# RIA服务linq问题-转换输出,c#,silverlight,linq,wcf-ria-services,C#,Silverlight,Linq,Wcf Ria Services,我正在开发Silverlight Web应用程序并使用RIA服务。域服务类的部分代码如下所示: public IQueryable<ClassA> GetClassa() { return this.ObjectContext.ClassA; } 所以我想得到所有的ClassA,并根据一个标准创建新的ClassB,然后将其放入Telerik图表中 this._reviewedICs.ItemsSource = items; 问题是,我不能隐式地将它从一个转换到另一个。我
public IQueryable<ClassA> GetClassa()
{
return this.ObjectContext.ClassA;
}
所以我想得到所有的ClassA,并根据一个标准创建新的ClassB,然后将其放入Telerik图表中
this._reviewedICs.ItemsSource = items;
问题是,我不能隐式地将它从一个转换到另一个。我怎样才能解决这个问题
编辑:完全忘记“Load()”有一个“Completed”事件-_-
触发事件后,我只在事件处理程序中处理它
context.Load(context.GetClassaQuery()).Completed(DoSomething)
private void DoSomething(object sender, EventArgs e)
{
List<ClassA> = context.ClassA.ToList();
//do whatever you want :)
}
context.Load(context.GetClassaQuery()).Completed(DoSomething)
私有void DoSomething(对象发送方、事件参数e)
{
List=context.ClassA.ToList();
//想做什么就做什么:)
}
以下是一个如何操作的示例:
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
} );
};
列出所有的b;
SomeContext ctx=新的SomeContext();
LoadOperation loader=ctx.Load(context.GetClassaQuery().Where(…);
加载器。已完成+=(s,e)=>
{
var entities=(s作为LoadOperation).entities;
allTheBs=entities.Select(a=>newclassb()
{
a、 Field1=b.SomeField,
a、 Field2=b.SomeOtherField
} );
};
为什么不转换已完成事件中返回的classA实例?
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
} );
};