इकाई फ्रेमवर्क का उपयोग करके मैं तालिका से कुछ डेटा चुनता हूं और foreach
लूप के साथ इसे फिर से चलाता हूं। मैं सोच रहा हूं कि निम्नलिखित उदाहरणों में डेटा कहां से पूछताछ की जा रही है?डीबीएसईटी <TEntity> बनाम IQueryable <out T>
उदाहरण 1.
var countries = db.WorldCountries;
foreach(var item in countries)
{
Console.WriteLine("Country: {0}", item.Country);
}
उदाहरण 2.
var countries = db.WorldCountries.Where(t => t.Country == "Country Name");
foreach(var item in countries)
{
Console.WriteLine("Country: {0}", item.Country);
}
पहले उदाहरण में, countries
DbSet<WorldCountries>
दूसरे उदाहरण में है, countries
IQueryable<out WorldCountries>
है।
उपर्युक्त उदाहरणों में .ToList()
के बिना डेटा कैसे पुनर्प्राप्त किया जाता है? पूरे डेटा सेट को पुनर्प्राप्त किया गया है जब foreach
लूप प्रारंभ होता है (जैसे .ToList()
को पहले पुनरावृत्ति की शुरुआत में बुलाया गया था) या लूप के प्रत्येक पुनरावृत्ति पर डेटाबेस को क्वेरी जारी की जाती हैं।
धन्यवाद।
क्या आप सुनिश्चित हैं कि डेटा हस्तांतरण टुकड़े द्वारा टुकड़ा किया जाता है, यदि ऐसा है तो क्या आपके पास कोई संदर्भ है? मैं इस –
के बारे में बहुत उत्सुक हूं, मैं यह पुष्टि करने में सक्षम था कि आप सही हैं, यह वास्तव में बैच में डेटा खींचता है, सभी एक साथ नहीं। मैंने एक बड़े dbset के माध्यम से पुनरावृत्ति करके एक परीक्षण लिखा - भागने के माध्यम से मैं उस डीबी कनेक्शन को मारता हूं, और उम्मीद है कि एक त्रुटि फेंक दी गई थी। –