none
Можно ли через открытый конекшин отправлять несколько запросов асинхронно? RRS feed

  • Вопрос

  •         public static async Task<ParametersData> GetParametersDataAsync(string connectionString)
            {
                var result = new ParametersData();
                using (var dctx = new DataEntities(connectionString))
                {
                    dctx.Database.Connection.Open();
    
                    result.my1 = await dctx.[MyTable1].AsNoTracking()
                        .Where(c => !c.[чего-то])
                        .OrderBy(c => c.[шота])
                        .Select(c => new
                        {
                            c.ID,
                            c.Name,
                        })
                        .ToDictionaryAsync(c => c.ID, c => c.Name);
    
    ...
    
                    result.myN = await dctx.[MyTableN].AsNoTracking()
                        .Where(c => c.[исчё])
                        .OrderBy(c => c.[ниче])
                        .Select(c => new
                        {
                            c.ID,
                            c.Name,
                        })
                        .ToDictionaryAsync(c => c.ID, c => c.Name);
    
                    dctx.Database.Connection.Close();
                }
                return result;
            }
    Собсно сабж
    • Изменено Radu2000 8 марта 2019 г. 13:07
    8 марта 2019 г. 13:05

Ответы

  • Если ваш код работает с конкретной базой и провайдером, то можно, иначе нельзя.

    Если не работает, то никто не мешает открывать отдельное соединение для каждого запроса.

    Далее осталось выяснить имеет ли смысл так делать или же что то где то ставится в очередь (или мешает друг другу) и по факту все выполняется последовательно.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    8 марта 2019 г. 16:30
    Модератор