У меня есть отношение «многие ко многим» между пользователями и группами, и у меня есть таблица, которая может содержать разрешение для группы. Таким образом, юридические лица выглядеть примерно так:Entity Framework, отношения «многие ко многим» и запросы
public class Group
{
public int Id { get; set; }
public virtual ICollection Users { get; set; }
}
public class User
{
public int Id { get; set; }
public virtual ICollection Groups { get; set; }
}
public class Permission
{
public int Id { get; set; }
public virtual Group { get; set; }
public int Value { get; set; }
}
Мне интересно, как я узнаю, что права доступа, которые применимы к пользователю (где применимо из которых являются для любых групп, к которым принадлежит пользователь).
В базе данных будет отображаться таблица, называемая UserGroups. Если бы я имел доступ к этому, запрос LINQ будет выглядеть примерно так:
var permissions =
from p in MyContext.Permissions
join m in this.DbContext.UserGroups on p.GroupId equals m.GroupId
where m.UserId.Equals(theUserId)
select g;
Однако (см my related question), так как у меня нет доступа к таблице отображения, я не уверен, что лучший способ найти применимые разрешения. Каков наилучший способ сделать это?
Спасибо за вашу помощь, Эрик