LINQ to Entities - запросы «многие ко многим» с первым кодом - PullRequest
1 голос
/ 16 мая 2011

Допустим, у меня есть это:

    public partial class AccessMask
{
    public int AccessMaskID { get; set; }
=== bla bla bla ===

    public virtual ICollection<Role> Role { get; set; }
}

    public partial class Role
{

    public int RoleID { get; set; }
    === bla bla bla==

    public virtual ICollection<Forum> Forum { get; set; }
    public virtual ICollection<Rank> Rank { get; set; }
    public virtual ICollection<User> User { get; set; }
    public virtual ICollection<AccessMask> AccessMask { get; set; }
}

А теперь большой вопрос. Как сделать запрос между этими двумя? Как вы можете видеть, это отношение многих ко многим. И я хочу присоединиться к этому и получить маску доступа, связанную с ролью. бла бла бла - некоторые случайные свойства, которые совершенно не имеют отношения к делу.

UPDATE!

Я знаю, что могу использовать: Включают() Но использовать его для большого количества запросов ... будет плохой идеей. Потому что у меня довольно много отношений «многие ко многим», которые выглядят похожими. Или я должен просто переосмыслить мою модель на что-то более традиционное с присоединением сущности?

1 Ответ

3 голосов
/ 16 мая 2011

Для извлечения данных он будет работать так же, как и любое другое свойство навигации:

Role myRole = context.Where(x=>x.Id=123).FirstOrDefault();
ICollection<AccessMask> masks = myRole.AccessMask;

Однако у меня было очень трудное время для получения данных многие-ко-многим для сохранения.

...