Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Silverlight中执行多次回调以从DB获取数据是一种好的做法吗?_C#_Silverlight_Entity Framework 4_Silverlight 4.0_Callback - Fatal编程技术网

C# 在Silverlight中执行多次回调以从DB获取数据是一种好的做法吗?

C# 在Silverlight中执行多次回调以从DB获取数据是一种好的做法吗?,c#,silverlight,entity-framework-4,silverlight-4.0,callback,C#,Silverlight,Entity Framework 4,Silverlight 4.0,Callback,我正在使用SL5.0和EntityFramework。我需要从两个实体获取数据,但我不喜欢我正在做的方式。。通过回调 var context = ... context.Load(context.GetTestTemplatesSummaryQuery("OPA-3DKCL2")).Completed += (s, e) => { var result = context.GetTestTemplatesSummary_Results; var re

我正在使用SL5.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,有一个新的异步/等待机制用于异步编程,如下所示:

public async Data GetData()
{
    return await _myService.GetDataAsync();
}
当您编译代码时,它被分解为一系列异步方法,但是开发人员编写的代码大大简化了

如上所述,如果您有VS 2012(VS 11),那么您可以下载一个包,该包允许您将Wait async与Silverlight 5一起使用。如果您没有使用VS 2012,那么您当前所做的是完全正确的