के लिए किया जा सकता है। मैं ईएफ 6.1.3 और .NET Framework 4.6.1 का उपयोग कर मॉडल लागू कर रहा हूं। इस मॉडल का उपयोग एएसपीएनईटी ऐप द्वारा और एएसपीएनईटी कोर ऐप द्वारा किया जाता है, इसी कारण से यह System.Data.Entity का उपयोग करता है और यह एक अलग असेंबली mymodel.dll में स्थित है।केवल स्रोत जो IAsyncEnumerable को लागू करते हैं, का उपयोग एंटिटी फ्रेमवर्क एसिंक्रोनस ऑपरेशंस
यह मॉडल
using System.Data.Entity;
public partial class MyDbContext : DbContext
{
public virtual DbSet<Athlete> Athletes{ get; set; }
}
public partial class Athlete
{
public Athlete()
{
}
//...
public string Country { get; set; }
}
मुझे लगता है कि aspnet कोर में .NET फ्रेमवर्क 4.6 के साथ लागू किया गया है MVC अनुप्रयोग विकसित कर रहा हूँ है। यह ईएफ 6.1.3 का संदर्भ देता है ताकि मॉडल का उपयोग किया जा सके।
public class MyViewModel
{
public IList<Athlete> ItalianAthletes{ get; set; }
}
using Microsoft.EntityFrameworkCore;
//solution: comment the previous line and use instead System.Data.Entity;
public class MyController : Controller
{
private readonly MyDbContext _context;
//...
public IActionResult Index()
{
MyViewModel myvm = new MyViewModel();
var result = _context.Athletes.Where(a=>a.Country=="Italy").ToList();
myvm.ItalianAthletes = result ;
return View(myvm);
}
}
... और यह अपेक्षा के अनुसार काम करता है।
अब बदल रहा async के सूचकांक विधि
public async Task<IActionResult> Index()
{
MyViewModel myvm = new MyViewModel();
var result = _context.Athletes.Where(a=>a.Country=="Italy").ToListAsync();
await result; //at this point an exception is thrown
//...
}
InvalidOperationException: स्रोत IQueryable IAsyncEnumerable को लागू नहीं करता है। केवल स्रोत जो IAsyncEnumerable को लागू करते हैं, का उपयोग एंटिटी फ्रेमवर्क एसिंक्रोनस ऑपरेशंस के लिए किया जा सकता है।
कहां() खंड को हटा रहा है समस्या को जारी रखता है, इसलिए समस्या ToListAsync() से संबंधित प्रतीत होती है;
var result = _context.Users.ToListAsync();
मेरी बात ध्यान से अपवाद मैं समझता हूँ कि "IQueryable ToList (द्वारा उत्पन्न) does not को IAsyncEnumerable लागू" लेकिन यह does not कर भावना का पाठ पढ़ने क्योंकि वह सब व्यवहार ToListAsync करने के लिए आंतरिक है();
कोई मुझे हुड के नीचे क्या हो रहा है यह बेहतर ढंग से समझने में मदद कर सकता है? और मैं क्या कर सकता हूं ताकि ToListAsync() अपेक्षा के अनुसार काम करता हो?
किसी भी टिप्पणी के लिए अग्रिम धन्यवाद
आप में मदद की जा सकती है: https://msdn.microsoft.com/en-us/data/dn313107 – Sampath
समाधान –