2010-03-22 15 views
6

में चुनिंदा उत्सुक लोडिंग क्या संबद्ध संस्थाओं की संख्या को सीमित रूप से शामिल करने के साथ सीमित करना संभव है?इकाई फ्रेमवर्क

उदा। मेरे पास कई से एक संबंध के साथ लेखक और पुस्तक इकाइयां हैं I सभी लेखकों और उनकी अंतिम पुस्तक

धन्यवाद लोड करना चाहते हैं।

उत्तर

0

हाँ आप कर सकते हैं। आप इसे दो प्रश्नों के माध्यम से करने जा रहे हैं।

पहले अपने लेखकों का चयन करें।

List<Authors> authors = context.Authors.ToList(); 

दूसरा अपनी पुस्तकें चुनें।

List<Books> books= 
        ( from b in context.Books 
          group b by b.AuthorName into groupedByAuthor 
          let maxDate = groupedByAuthor.Max(c=>c.PublishDate) 
          ... 
        ).ToList 

जब आप ऐसा करते हैं तो यह ईएफ लेखक के लिए आपकी पुस्तक को पॉप्युलेट करेगा। ध्यान दें कि आपका संदर्भ "लोड नहीं किया जाएगा" लेकिन आपकी 1 पुस्तक वहां होगी।

इसे आजमाएं ... ईएफ का आनंदमय जादू। जहां लेखक अपनी इकाई नाम और लेखक में अपनी नेविगेशन संपत्ति में पुस्तकें है

var list = (from a in Authors.Include("Books") 
      join b in books.OrderByDesc(b => b.PublishedDate).Take(1) 
       on a.Id equals b.AuthorId into bo 
      select new { Author = a, Books = b }).ToList(); 

List<Author> authors = list.Select(o => o.Author); 

:

0

मैं इस तरह यह करना चाहते हैं। आपके पास अभी भी पुस्तकों के लिए एक EntityCollection होगा लेकिन इसमें केवल 1 तत्व होना चाहिए।

+0

:

पर मेरे सवाल देखें। कोई सशर्त मानदंड (जैसे कि ले लो या यहां तक ​​कि इसमें शामिल हों) ईएफ को बताता है कि वहां कुछ स्थितियां हैं और इसमें सब कुछ शामिल नहीं होना चाहिए। शामिल है। कम से कम मैं इसे समझता हूं और मैंने उस वाक्यविन्यास के साथ बहुत कुछ खेला है। –

3

आप इसे सिंटैक्स का उपयोग करके नहीं कर सकते हैं लेकिन आप इसे प्रक्षेपण का उपयोग करके कर सकते हैं।

var list = (from a in data.Authors 
      select new 
      { 
       Author = a, 
       Books = (from b in a.Books select b).Take(1) 
      }).ToList(); 

मटीरियलाइज़र जब आप परिणाम प्राप्त यह संबंध Fixup है का इस्तेमाल किया है जाएगा और आप list.Author.Books उपयोग करने के लिए सक्षम हो जाएगा। मैं .Include विश्वास नहीं है ("किताबें") यहाँ के लिए आवश्यक है LINQ to Entities (Entity Framework) Join and .Include conflict

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