c# - Getting a list of Resource-Activities pairs. Entity Framework -


  1. यहां DbContext और मॉडल का सार है मेरी परियोजना में -
  2. ये संबंध हैं:
    • उपयोगकर्ता - भूमिका के रूप में एम : एम
    • भूमिका - गतिविधि एम : एम : एम के रूप में संसाधन RoleResourceActivity
    • बीज
  3. Linq --query:
  4. P>
      चुनें r.Name [संसाधन], a.Name क्रियाएँ से आरआर पर जुड़ें RoleResourceActivities ra.ActivityId = a.Id आरओ पर संसाधन आर शामिल करें। ResourceId = r.Id आरओ पर भूमिकाएं आरओ में शामिल हों RoleId = ro.Id urRole_Id = ro.Id पर यूआरर में शामिल हो जाता है। यूआर यूजर यूआई यूयूआई पर यूडी में शामिल होते हैं यू.आईडी. यू में यू.यूयूएनयूएनयूआरएल = 'यूजर' समूह आर। एननाम, एकनामनाम।   

    परिणाम उपयोगकर्ता और User2 के अनुरूप:

    यहां छवि विवरण डालें

    प्रश्न

    ऐसा कोई linq-query कैसे लिख सकता है ताकि परिणाम सेट होगा

    या JSON में:

      नया {संसाधन = संसाधन। नाम, क्रियाकलाप = सूचीऑपरिंग संबंधित गतिविधि}   
      // उपयोगकर्ता नाम: `उपयोगकर्ता`, भूमिकाएं:" सरल उपयोगकर्ता "," उन्नत उपयोगकर्ता "[{संसाधन:" ब्लॉग ", क्रियाएँ: [" हटाएं "," पढ़ें "," अपडेट "] }, [संसाधन: "ब्लॉग", क्रियाएँ: [संसाधन: "वार्ता", क्रियाएँ: ["हटाएं", "पढ़ें", "अपडेट"]}] उपयोगकर्ता नाम: 'उपयोगकर्ता 2`, भूमिकाएं: "सरल उपयोगकर्ता" [क्रियाएँ: [ "पढ़ने"]}, {संसाधन: "वार्ता", क्रियाएँ: ["पढ़ें"]}]  

आप इस विधि का उपयोग कर किसी उपयोगकर्ता से संसाधन और संबंधित गतिविधियों को पा सकते हैं:

  सार्वजनिक आईएलओ okup & LT; स्ट्रिंग, स्ट्रिंग & gt; GetResourcesAndActivitiesByUser (स्ट्रिंग उपयोगकर्ता नाम) {का उपयोग कर (वर _db = नए AppDbContext ()) {वापसी (यू से _db.Users जहां u.UserName == _db.Activities में एक से उपयोगकर्ता नाम _db.RoleResourceActivities में ra में शामिल होने पर a.Id रा के बराबर होती है में । एक्टिविटीइडी आर डीडी में शामिल हैं। आरओ पर संसाधनों। रिसोर्सआईडी आर.आईडी के बराबर होती है डीडीबी में आर.ओ.आर. आर पर आरओ। आरओआईडी बराबर होती है ro.Id जहां u.Roles.Contains (ro) नई {RESOURCE = r.Name, गतिविधि = a.Name}) .ToLookup (ई = & gt; e.Resource, ई = & gt; e.Activity); }}  

आप एक बनाना चाहते हैं IEnumerable & lt; & gt; के रूप में आप अपने प्रश्न में दिखाने गुमनाम प्रकार पर आधारित है, तो आप ऐसा कर सकते हैं:

 <कोड> वर संसाधनों = GetResourcesAndActivitiesByUser ( "userx") का चयन करें। (ड = & gt; नए {संसाधन = e.Key, क्रियाएँ = e.ToList ()});  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -