سؤال

لدي صفحات الجدول لدي PagesRoles الجدول مع PageId, رقم تعريف role التي تربط ASP.Net عضوية الأدوار الجدول صفحات الجدول.

أريد أن تعود بطريقة ما إلى صفحة الروابط دخوله حاليا في المستخدم الأدوار.

قد يكون المستخدم في أكثر من دور واحد.صفحة يمكن أن يكون لها أكثر من دور واحد ضدها.

لدي صفحة الفئة التي لديها الأجنبية الرئيسية ممتلكات IQueryable.PageRoles لديه IQueryable إلى ASPNet الأدوار الجدول (IQueryable) و IQueryable

شكرا

تحرير:

باستخدام آدم الإجابة على جميع الصفحات التي لها الدور المنوط به والذي يطابق واحدة من دخوله حاليا في المستخدم الأدوار لدي إضافة المسألة.لدي قائمة جدول يحتوي على PageID الخارجية مفتاح معرف_الفئة.

أود أن عودة جميع عناصر القائمة مع معرف_الفئة من 4.بالنسبة لأولئك الذين لديهم PageID كنت بحاجة للتأكد من أن المستخدم هو يسمح أن نرى أن صفحة على أساس دوره.أعتقد آدم الاستعلام يفعل ذلك.لذلك أعتقد أن ما أحتاجه هو الاتحاد عودة جميع عناصر القائمة حيث PageID هو null و معرف_الفئة هو 4 و عودة جميع عناصر القائمة حيث معرف_الفئة 4 والانضمام إلى الصفحة->PageRole->ASPNetRole حيث المستخدمين الحاليين الأدوار في هذا ASPNetRole النتائج.

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم دون سرعة الصوت 3 استعلام مثل التالية ينبغي أن تعمل:

var pagesForUser = from pages in Pages.All()
    join pagesRoles in PagesRoles.All() on pages.Id equals pagesRoles.PageID
    join roles in Roles.All() on pagesRoles.RoleId equals roles.Id
    where User.GetRoles().Contains(roles.Name)
  select pages;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top