В LINQ-to-SQL классах, генерируемых QP7.Framework в отличие от стандартных LINQ-to-SQL классов, существует поддержка M2M-полей.
Они доступны в двух интерфейсах:
Первый интерфейс обычно используется для простых выборок, добавления, удаления связанных статей. Второй интерфейс – для сложных выборок – а именно для фильтрации по M2M-полю на уровне SQL.
При написании LINQ-запроса с фильтрацией по M2M-полю на уровне SQL алгоритм следующий:
IQueryable<Article> art = ctx.ArticlesCategories.Where(n => n.Category.Title == "main").Select(m => m.Article);
Особенности использования M2M-полей при явном инстанцировании контекстного класса описаны здесь.
Discussion