Выполнение нескольких запросов к базе данных EntityFramework параллельно
Я пытаюсь запустить 3 дБ запросов параллельно, но я не уверен, что я делаю это правильно.
Я сделал 3 функции, каждая из которых делает запрос к БД.
private static async Task<string> getAccountCodeAsync(string deviceId)
{
long deviceIdLong = long.Parse(deviceId);
using (var db = new NetworksEntities())
{
return db.Devices.Where(x => x.DeviceId == deviceIdLong).Select(x => x.AccountCode).FirstOrDefault();
}
}
private static async Task<string> getDeviceTypeAsync(string deviceId)
{
long deviceIdLong = long.Parse(deviceId);
using (var db = new NetworksEntities())
{
return db.Devices.Where(x => x.DeviceId == deviceIdLong).Select(x => x.DeviceType).FirstOrDefault().DeviceType;
}
}
private static async Task<string> getUserNameAsync(string userId)
{
int userIdInt;
Int32.TryParse(userId, out userIdInt);
using (var db = new NetworksEntities())
{
return db.Users.Where(x => x.UserId == userIdInt).Select(x => x.Email).FirstOrDefault();
}
}
Затем я в своем коде запускаю три задачи:
var TaskAccountCode = await getAccountCodeAsync(deviceId);
var TaskDeviceType = await getDeviceTypeAsync(deviceId);
var TaskUsername = await getUserNameAsync(userId);
await Task.WhenAll();
//use the results from my 3 tasks to make a new insert into the db.
Является ли то, что я делаю, на самом деле параллельно выполняю мои запросы 3 дБ?
РЕДАКТИРОВАТЬ:
private static async Task<string> getAccountCodeAsync(string deviceId)
{
long deviceIdLong = long.Parse(deviceId);
using (var db = new NetworksEntities())
{
return db.Devices.Where(x => x.DeviceId == deviceIdLong).Select(x => x.AccountCode).FirstOrDefaultAsync();
}
}