2012-06-07 11 views
9

मैं इस आदेश का उपयोग करने के तरीके को समझने की कोशिश कर रहा हूं। मुझे यकीन है कि मैं क्या में पारित करने के लिए लगता है कि व्यक्ति हूं।इस एमएसडीएन उदाहरण में आदेश का उपयोग कैसे करें

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

public virtual IEnumerable<TEntity> Get(
     Expression<Func<TEntity, bool>> filter = null, 
     Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, 
     string includeProperties = "") 
    { 
     IQueryable<TEntity> query = dbSet; 

     if (filter != null) 
     { 
      query = query.Where(filter); 
     } 

     foreach (var includeProperty in includeProperties.Split 
      (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) 
     { 
      query = query.Include(includeProperty); 
     } 

     if (orderBy != null) 
     { 
      return orderBy(query).ToList(); 
     } 
     else 
     { 
      return query.ToList(); 
     } 
    } 

उत्तर

14

आप MSDN लेख

से पढ़ें "कोड समारोह, IOrderedQueryable> orderBy भी मतलब है फोन करने वाले को प्रदान करेगा एक लैम्ब्डा अभिव्यक्ति। लेकिन इस मामले में, अभिव्यक्ति में इनपुट TENTITY प्रकार के लिए एक IQueryable ऑब्जेक्ट है। अभिव्यक्ति उस IQueryable ऑब्जेक्ट का ऑर्डर किया गया संस्करण लौटाएगी। उदाहरण के लिए, यदि छात्र इकाई प्रकार के लिए रिपॉजिटरी को तुरंत चालू किया जाता है, तो कॉलिंग विधि में कोड आदेश के लिए q => q.OrderBy (s => s.LastName) निर्दिष्ट कर सकता है आर। "

यह कहकर जब आप गेट को कॉल करते हैं तो आपको लैम्ब्डा अभिव्यक्ति प्रदान करनी चाहिए जो IQueryable पर एक Func या फ़ंक्शन होगा IOrderedQueryable प्रदान करना।

तो लेख में उपयोग की जाने वाली छात्र वस्तु के लिए आप उपयोग करते हैं।

var students = repository.Get(x => x.FirstName = "Bob",q => q.OrderBy(s => s.LastName)); 
+1

दरअसल, मैंने इसे पढ़ा, लेकिन मुझे यह समझ में नहीं आया। मुझे त्रुटियां मिल रही थीं। Intellisense वास्तव में मुझे उलझन में है क्यों मुझे सही जवाब नहीं मिला। धन्यवाद। – xivo

+0

क्या आप जानते हैं कि ऑर्डरबी को एएससी या डीईएससी में कैसे सेट किया जाए? – user1477388

+1

@ user1477388 es वहाँ एक ऑर्डरबी विधि है जो आरोही है और ऑर्डरबैडसेकिंग विधि भी है। –

संबंधित मुद्दे