5

मेरे पास हाल ही में एमवीसी 4, .NET 4.5 के साथ एक प्रोजेक्ट है और ईएफ 5.0 डीबीकॉन्टेक्स्ट जेनरेटर का उपयोग कर ईएफ 5.0 (डाटाबेस फर्स्ट) का उपयोग कर रहा है। इसके बाद मैंने Nuget प्रबंधक के माध्यम से ईएफ 6.0 अल्फा 2 में अपग्रेड किया। मैं नए एसिंक पैटर्न का उपयोग करना चाहता था, लेकिन किसी कारण से मेरे पास नहीं है। ToListAsync() उपलब्ध है। मैं संदर्भ को एक समान फैशन में संदर्भित कर रहा हूं:इकाइयां फ्रेमवर्क 6 अल्फा 2 - असिंक पैटर्न

public class HomeController : Controller 
{ 
    TestContext db = new TestContext(); 

    public async Task<ActionResult> Index() 
    { 
     var keywords = await db.Keywords.ToListAsync(); 

     return View(keywords); 
    } 
} 

क्या यह डेटाबेस पहले में उपलब्ध नहीं है, और केवल कोड पहले में उपलब्ध है? मैं ऊपर दिए गए उदाहरण की तरह कुछ कैसे बना सकता हूं? मैं एसक्यूएल एज़ूर का उपयोग कर रहा हूँ।

उत्तर

8

Async तरह Task.Run उपयोग कर सकते हैं। विस्तार विधियों को ईएफ संबंधित System.Data.Entity.IQueryableExtensions स्थैतिक वर्ग में परिभाषित किया गया है। तो अगर आप जोड़ना होगा:

using System.Data.Entity; 

अपने नियंत्रक वर्ग फ़ाइल की शुरुआत में उन्हें कॉल करने के लिए सक्षम होने के लिए।

+1

मुझे आश्चर्य है कि क्यों हल नहीं हुआ। धन्यवाद! – Joe

+1

मैंने इस पर एक दिन बिताया! सूरज के नीचे सबकुछ कोशिश कर रहा है! जब तक मैं इस पोस्ट को पढ़ता हूं। आपका बहुत बहुत धन्यवाद!!! * आह * –

0

मुझे लगता है कि आप इस

public async Task<ActionResult> Index() 
{ 
    var keywords = await Task.Run(() => db.Keywords.ToList()); 

    return View(keywords); 
} 
+0

जो मैं कहने की कोशिश कर रहा हूं वह क्यों नहीं है। ToListAsync() जब यह होना चाहिए तो मेरे लिए उपलब्ध है? – Joe