2012-12-28 27 views
6

मेरे पास एक डेटाबेस है जहां उपयोगकर्ता एकाधिक भूमिकाओं और भूमिकाओं से संबंधित हो सकते हैं, कई अनुमतियां हो सकती हैं। दोनों रिश्ते कई के लिए कई हैं। मैं क्वेरी चाहता हूं और उपयोगकर्ता के पास रिमिशन की एक सूची उत्पन्न करता हूं। मैं यह देखने के लिए रोल तालिका से पूछताछ करके इसे पूरा करने की कोशिश कर रहा हूं कि उपयोगकर्ता क्या भूमिका निभाता है और फिर मैं क्वेरी करना चाहता हूं और देख सकता हूं कि प्रत्येक भूमिका में कौन सी अलग-अलग अनुमतियां हैं। हालांकि मुझे LINQ सही नहीं लगता है।इकाई फ्रेमवर्क कई रिश्तों के लिए कई लोगों को पूछताछ

var permissions = RoleRepository.Get() 
    .Where(x => x.Users.Contains(user)) 
    .Select(x => x.Permissions); 

उपरोक्त कोड मुझे अनुमतियों की सूची की एक सूची देता है, मुझे बस अनुमतियों की एक सूची चाहिए। क्या इन सभी सूचियों का संघ लेने के लिए वैसे भी (LINQ में) है? या यह पूरा करने के लिए एक बेहतर तरीका है?

+0

उपरोक्त कोड मुझे अनुमतियों की सूची की एक सूची देता है, मुझे बस अनुमतियों की एक सूची चाहिए ?? – Derek

+0

मुझे लगता है [यह] (http://stackoverflow.com/questions/5587288/many-to-many-query-in-entity-framework-4) आपकी समस्या का समाधान करेगा। – saber

उत्तर

6

उपयोग SelectMany इसके बजाय, SelectMany प्रश्नों कि वापसी सूचियों

की सूची तो यह प्रयास करें सपाट:

var permissions = RoleRepository.Get().Where(x => x.Users.Contains(user)) 
           .SelectMany(x => x.Permissions); 

आशा इस में मदद मिलेगी !!

+0

हाँ जो प्रत्येक सूची को एक में फहराता है। आपका बहुत बहुत धन्यवाद! –

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