समस्या यह है:
<ब्लॉकक्वॉट>ईएफ एक ही डीबीकॉन्टेक्स्ट ऑब्जेक्ट के माध्यम से एकाधिक अनुरोधों को संसाधित करने का समर्थन नहीं करता है। यदि आपका दूसरा एसिंक्रोनस अनुरोध उसी डीबीकॉन्टेक्स्ट इंस्टेंस पर पहले अनुरोध के पूरा होने से पहले शुरू होता है (और यह पूरा बिंदु है), तो आपको एक त्रुटि संदेश मिलेगा कि आपका अनुरोध एक खुले डेटा रीडर के खिलाफ संसाधित हो रहा है।
स्रोत:https://visualstudiomagazine.com/articles/2014/04/01/async-processing.aspx
आपको अपने कोड को कुछ इस तरह संशोधित करना होगा:
async Task<List<E1Entity>> GetE1Data()
{
using(var MyCtx = new MyCtx())
{
return await MyCtx.E1.Where(bla bla bla).ToListAsync();
}
}
async Task<List<E2Entity>> GetE2Data()
{
using(var MyCtx = new MyCtx())
{
return await MyCtx.E2.Where(bla bla bla).ToListAsync();
}
}
async Task DoSomething()
{
var t1 = GetE1Data();
var t2 = GetE2Data();
await Task.WhenAll(t1,t2);
DoSomething(t1.Result, t2.Result);
}