मुझे उत्सुकता है कि एंटीटी फ्रेमवर्क का उपयोग करते समय कॉल श्रृंखला में कॉल किया जाना चाहिए। विधि निम्नलिखित पर विचार करें:जहां कॉल श्रृंखला में शामिल होना चाहिए() ईएफ LINQ एक्सटेंशन को रखा जाना चाहिए?
// sample usage from service layer
// _customerRepository.Paginate(1, out totalRecords, 25, "DateJoined DESC, AmountSpent", "DateJoined >= '2009-02-01'", "Invoices, Refunds");
public virtual IQueryable<T> Paginate(int page, out int total, int pageSize, string sort = "Id", string filter = null, string includes = null)
{
IQueryable<T> query = DatabaseSet;
total = query.Count(); // get total # of records (required for pagination)...
var skipTo = GetValidSkipCount(page, total, pageSize);
if (!String.IsNullOrWhiteSpace(filter))
{
query.Where(filter);
}
// should includes be before filtering?
// should query.Count() be called after query.Include?
// does it matter?
if (!String.IsNullOrWhiteSpace(includes))
{
query.IncludeMany(includes); // my own extension that takes comma separated string of entities to include
}
return query.OrderBy(sort).Skip(skipTo).Take(pageSize);
}
मेरे प्रश्न हैं:
- को शामिल करना चाहिए हमेशा कॉल श्रृंखला में पहला हो सकता है?
- क्या गणना() को शामिल करके प्रभावित किया जाता है? यदि ऐसा है तो मुझे लगता है कि मुझे
- शामिल करने के बाद गणना करना चाहिए (फ़िल्टर) पहले या बाद में होना चाहिए?
- क्या वास्तव में कोई फर्क पड़ता है क्योंकि ईएफ सबकुछ जानने के लिए पर्याप्त "स्मार्ट" है?
बस एक नोट/प्रश्न, क्या आप उत्सुक लोडिंग के दौरान भी शामिल नहीं हैं? – Zapnologica