我正在使用SL 5.0和EntityFramework。我需要从两个实体中获取数据,但我不喜欢通过回调的方式。
。var context = ...
context.Load(context.GetTestTemplatesSummaryQuery("OPA-3DKCL2")).Completed += (s, e) =>
{
var result = context.GetTestTemplatesSummary_Results;
var result2 = ...
context.Load(context.GetTestTemplatesSummaryQuery(result)).Completed += (s2, e2) =>
{
...
};
};
我正在寻找一种优雅的方法。
您正在做的事情完全适合.NET版本1.0至4.0。这就是异步编程在.net世界中的工作。
使用.NET 4.5有一个新的异步/等待异步编程的Mechansim,看起来像这样:
public async Data GetData()
{
return await _myService.GetDataAsync();
}
当您编译代码时,它将被分解为一系列异步方法,但是开发人员编写的代码已大大简化。
如上所述,如果您拥有VS 2012(vs 11),则可以下载一个允许您使用Silverlight等待异步的包装。如果您不使用VS 2012对。