Создать запрос в базу на Linq

Есть 2 таблицы, они связаны между собой 3ей через связь многие ко многим

// Таблица 1
public class Table1
{
    public int Id { get;set; }
    public string Name { get;set; }
    public int Value { get;set; }
    public int Value2 { get;set; }
    public virtual IEnumerable<Table3> Table2 { get; set; }
}

// Таблица 2
public class Table2
{
    public int Id { get;set; }
    public int Name { get;set; }
    public virtual IEnumerable<Table3> Table1 { get; set; }
}

// Таблица 3
public class Table1Table2
{
    public int Table1Id { get; set; }
    public virtual Table1 Table1 { get; set; }

    public int Table2Id { get; set; }
    public virtual Table2 Table2 { get; set; }
}

Связи между ними реализованы и данные при подгрузке отображаются.

Хочу реализовать метод который бы загрузил мне 20 штук отсортированных данные из Table1, вот этот запрос.

_dbMainContext.Table1.OrderBy(tab=>tab.Id).Take(20).ToList();

Но еще мне нужно выбрать значения в фильтре из Table2

_dbMainContext.Table1.Where(x=>x.Table3.Any(c=>c.Table2.Name == "name1")).OrderBy(tab=>tab.Id).Take(20).ToList();

Но так как данных много для фильтрации, как это можно сделать по другому и можно ли такое сделать через Linq?


Ответы (0 шт):