Я создаю некоторый сервис WCF, который использует EF для запроса к базе данных необходимых мне данных. Проблема, с которой я столкнулся на данный момент, заключается в том, что у меня есть 2 или более запросов EF LINQ, которые объявляются и затем выполняются, чтобы вернуть мои данные ... но это последовательно. Выдается один запрос EF, а затем следующий.
Кто-нибудь знает простой способ выполнять запросы параллельно? Или я смотрю на асинхронные / параллельные задачи, чтобы получить правильное поведение.
Я знаю, что DBContext не является потокобезопасным, поэтому у меня нет проблем с объявлением нескольких контекстов, если это необходимо.
Код пока что такой:
using (IMyContext ctx = MyFactory.GetInstance(request.UserId)) {
Response response = new Response();
response.customer = ctx.GetCustomerByAccount(request.data.Account);
response.orders = ctx.GetOrdersByAccount(request.data.Account);
response.address = ctx.GetDefaultAddressByAccount(request.data.Account);
return response;
}
Код GetCustomerByAccount, GetOrdersByAccount и GetDefaultAddressByAccount просто просматривает поиск в DbSet для получения моих данных.
В случае, если это имеет значение, я использую EF в Oracle и использую Code First. У меня нет навигационных свойств и никаких ограничений между таблицами, поэтому я не могу сказать EF загружать меня в «Заказы и адреса» с помощью отложенной загрузки, когда я запрашиваю основную запись о клиенте.
Спасибо заранее,
Ник