Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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# 每个循环的实体框架一个一个_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 每个循环的实体框架一个一个

C# 每个循环的实体框架一个一个,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我在类中有一个方法,它需要将两个表重新映射到dto中,但当我循环遍历表时,它会给我整个表,而不是每个循环一条记录,有没有一种方法可以告诉返回的表给每个循环一个项?并且异步地执行它?当前代码如下所示: var simpleDtoList = new List<DtoObject>(); using (var db = new SimpleContext()) { await foreach (SimpleA A in db.SimpleATable) {

我在类中有一个方法,它需要将两个表重新映射到dto中,但当我循环遍历表时,它会给我整个表,而不是每个循环一条记录,有没有一种方法可以告诉返回的表给每个循环一个项?并且异步地执行它?当前代码如下所示:

var simpleDtoList = new List<DtoObject>();

using (var db = new SimpleContext())
{
     await foreach (SimpleA A in db.SimpleATable)
     {
         using (var database = new SimpleContext())
         {
             await foreach (SimpleB B in database.SimpleBTable)
             {
                   var DtoObject = new DtoObject();

                   DtoObject.Id = A.Id;
                   DtoObject.SimpleA = A.Name;
                   DtoObject.SimpleB = B.Name;

                   simpleDtoList.Add(DtoObject);
             }
        }
    }
}
return simpleDtoList;
var simpleDtoList=new List();
使用(var db=new SimpleContext())
{
等待foreach(数据库SimpleATable中的SimpleA A)
{
使用(var database=new SimpleContext())
{
等待foreach(database.SimpleBTable中的SimpleB)
{
var DtoObject=新的DtoObject();
DtoObject.Id=A.Id;
DtoObject.SimpleA=A.名称;
DtoObject.SimpleB=B.名称;
simpleDtoList.Add(DtoObject);
}
}
}
}
回归简单主义;

我已经找到了设置SimpleToList的Where equals索引的解决方案,但我必须删除wait,有没有办法保留wait代码?

您需要以下帮助吗

await foreach (SimpleB B in (from b in db.Blogs where something == "somthing").ToListAsync()))
{
     var DtoObject = new DtoObject();
     DtoObject.Id = A.Id;
     DtoObject.SimpleA = A.Name;
     DtoObject.SimpleB = B.Name;
     simpleDtoList.Add(DtoObject);
}

需要以下帮助吗

await foreach (SimpleB B in (from b in db.Blogs where something == "somthing").ToListAsync()))
{
     var DtoObject = new DtoObject();
     DtoObject.Id = A.Id;
     DtoObject.SimpleA = A.Name;
     DtoObject.SimpleB = B.Name;
     simpleDtoList.Add(DtoObject);
}

我找不到在这里添加异步代码的方法,除非我为每个循环返回整个表,并通过列表的索引进行追加,但请求大小和数量不值得只使用异步代码,正如我在解决方案中所述,它会一个接一个地查找,其中它等于列表索引,如果有人找到我可以放置async Wait的地方,请告诉我。查看c#8中的async+yield——为什么要创建上下文的两个实例?我找不到在这里添加异步代码的方法,除非我为每个循环返回整个表并按列表的索引进行追加,但请求大小和数量不仅值得使用异步代码,目前,正如我在解决方案中所述,它会一个接一个地找到它等于列表索引的位置,如果有人找到我可以放置async Wait的位置,请告诉我。检查c#8中的async+yield——为什么要创建两个上下文实例?