سلام
من توی برنامه ام سه تا کلاس کاربر، گروه و مجوز دارم که Entity Framework به صورت زیر تعریف کردم

کلاس کاربر

public class ClassUser
{
....
public virtual ICollection<ClassGroup> Groups { get; set; }
}



کلاس مجوز

 

public class ClassPermission
{
.....
public virtual ICollection<ClassGroup> Groups { get; set; }
}



کلاس گروه


public class ClassGroup
{
......
public virtual ICollection<ClassUser> Users { get; set; }
public virtual ICollection<ClassPermission> Permissions { get; set; }
}



رابطه های اینطوری تعریف میشه
1- هر کاربر توی چند گروه می تونه عضو بشه و توی یک گروه هم چند تا کاربر می تونه وجود داشته باشه (رابطه چند به چند)
1- هر مجوز به چند گروه می تونه داده بشه، و هر گروه می تونه چندتا مجوز داشته باشه(رابطه چند به چند)

چطوری می تونم جستجوهای زیر رو ایجاد کنم (با استفاده از lambda )
ایا کاربر User1 عضو گروهی است که اون گروه مجوز Permission1 رو داشته باشه؟
گروه های از کاربر User1 رو بده که اون گروه ها مجوز Permission1 رو داشته باشن؟
لیست تمام مجوزهای یک کاربر (شامل همه گروه ها) رو استخراج کرد؟


ممنون