2012-12-28 18 views
6

Kullanıcıların birden çok Rol'e ait olabileceği ve Rollerin birden çok İzin sahibi olabileceği bir veritabanım var. Her iki ilişki de çoktur. Bir kullanıcının istediği Rermisyonların bir listesini oluşturmak ve sorgulamak istiyorum. Bunu, Rolleri Kullanıcının bir üyesi olduğunu görmek için Rol tablosu tablosunu sorgulayarak gerçekleştirmeye çalışıyorum ve sonra her Rol'ün içerdiği farklı İzinleri sorgulamak ve görmek istiyorum. Ancak LINQ'ı doğru olarak göremiyorum.Varlık Çerçevesi Çoktan Çokya kadar Çok Sorunu Sorgulama

Yukarıdaki kod, İzinler listesi listesini verir, yalnızca İzinlerin listesini istiyorum. Bütün bu listelerin birliğini almak için (LINQ'da) var mı? Ya da bunu başarmanın daha iyi bir yolu var mı?

+0

Yukarıdaki kod bana bir İzinler listesi listesi veriyor, Sadece İzinlerin bir listesini istiyorum? – Derek

+0

Sanırım [bu] (http://stackoverflow.com/questions/5587288/many-to-many-query-in-entity-framework-4) sorununuzu çözecektir. – saber

cevap

6

Kullanım SelectMany Bunun yerine, SelectMany listeleri

listelerini dönmek sorguları Yani bu deneyin düzleştirir: Bu yardımcı olacaktır

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

Umut !!

+0

Evet, her bir listeyi birer birer düzleştirin. Çok teşekkürler! –