MVC многие ко многим получают сначала объекты с определенным типом только в коде - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть отношения многие ко многим между Company и CompanyType

Я хочу получить список для раскрывающегося списка только компаний с CompanyType.Name, равным «Клиент».То есть clientCompanyList.

Как я могу это сделать в linq?

Я в основном хотел сделать следующее, но в linq

var clientCompanies = db.Companies.SqlQuery(@"SELECT  c.*
FROM    Companies AS c
JOIN    CompanyTypeCompanies AS ctc ON ctc.Company_ID = c.ID
JOIN    CompanyTypes AS ct ON ctc.CompanyType_ID = ct.ID
WHERE   ct.Name = 'Client'").ToList();

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете использовать оператор включения, если он имеет правильное отношение внешнего ключа между таблицами

var clientCompanies = db.CompanyTypes
.Where(ct => ct.Name == "Client").Include(ct => ct.CompanyTypeCompanies).Include(ct => ct.Companies).Select(ct => ct.Companies).ToList();

В классе запуска

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddMvc()
        .AddJsonOptions(
            options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
        );

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...