Создать запрос в базу на 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?