मैं एक दूरस्थ डेटा स्रोत तक पहुंच रहा हूं और पाया कि एक समूह में शामिल होने के कारण IQueryable क्वेरी को IENumerable में परिवर्तित किया जा सकता है,समूह में शामिल होने के कारण IQueryable IENumerable में बदलना है, क्यों?
प्रश्न: क्या यह प्रदर्शन को प्रभावित करेगा? मैं संभव के रूप में डेटाबेस के लिए क्वेरी के रूप में ज्यादा बेचने के लिए, और निष्पादित नहीं स्मृति में कुछ भी चाहते हैं ...
var allusers = repo.All<User>().Where(x => x.IsActive);
var _eprofile = repo.All<Profile>()
.Where(x => x.IsProfileActive)
.Join(allusers, x => x.UserID, y => y.UserID, (x, y) => new
{
eProfile = x,
profile = y
})
.GroupJoin(_abilities, x => x.eProfile.ID, y => y.ID, (x, y) => new QuoteDTO
{
UserID = x.profile.Login,
Email = x.profile.Email,
Tel = x.profile.Tel,
Mobile = x.eProfile.Mobile,
CompanyID = x.profile.CompanyID,
Ability = y.Select(c => new AbilityDTO
{
Name= c.Name
})
});
लाइन: .GroupJoin (_abilities, एक्स => x.eProfile.ID , वाई => y.ID, (एक्स, वाई) => नई QuoteDTO
- _abilities एक IQueryable है, मैं एक उपयोगकर्ता की क्षमता, वस्तुओं
- दूसरे भाग (एक्स का एक संग्रह मिल , वाई) - यहां y को एक IENumerable में बदल दिया जाता है ...
var cLists = List<int>();
// इस संग्रह ग्राहक कोड से पॉप्युलेट होता है कहते हैं कि यह // तर्क खातिर 1,3,55 शामिल की सुविधा देता है ...
var _abilities= repo.All<UserAbility>()
.Where(x => x.Status == Status.Active.ToString())
.Where(x => cLists.Contains(x.CompetencyID));
नोट: कारण मैं उपयोग वर ताकि मैं मेरी पसंद की एक वस्तु में से पहले डीटीओ वस्तुओं डाला गया बदलना, मैं गुमनाम प्रकार का एक बहुत उपयोग कर रहा था सकता है ...
कौन सा बिट "एक आईनेमरेबल में परिवर्तित हो रहा है"? और _ability क्या है? –
यह एक उप प्रश्न है, मैंने उपरोक्त कोड को अद्यतन किया है ... – Haroon
'_abilitiesable'' iQueryable' है? आपके सभी चर के डेटाटाइप क्या हैं? कृपया 'var' का उपयोग न करें, हम परिवर्तनीय प्रकारों के साथ-साथ कंपाइलर का अनुमान नहीं लगा सकते हैं। – Greg