Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

ईएफ 6 - समानांतर प्रश्नों को सही ढंग से कैसे करें

समस्या यह है:

<ब्लॉकक्वॉट>

ईएफ एक ही डीबीकॉन्टेक्स्ट ऑब्जेक्ट के माध्यम से एकाधिक अनुरोधों को संसाधित करने का समर्थन नहीं करता है। यदि आपका दूसरा एसिंक्रोनस अनुरोध उसी डीबीकॉन्टेक्स्ट इंस्टेंस पर पहले अनुरोध के पूरा होने से पहले शुरू होता है (और यह पूरा बिंदु है), तो आपको एक त्रुटि संदेश मिलेगा कि आपका अनुरोध एक खुले डेटा रीडर के खिलाफ संसाधित हो रहा है।

स्रोत: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);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आसान तरीका किसी दी गई तालिका के लिए प्राथमिक कुंजी के रूप में सही कॉलम का चयन करें

  2. SQL सर्वर में एक पूर्णांक को दशमलव में बदलने के 3 तरीके

  3. Statement.setFetchSize(nSize) विधि वास्तव में SQL सर्वर JDBC ड्राइवर में क्या करती है?

  4. SQL सर्वर - sp_spaceused के आंतरिक भाग को विच्छेदित करें

  5. एकाधिक तालिकाओं से SQL INSERT INTO