Фильтр на дочернем элементе в ядре структуры сущности (3.1.1) - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю с ядром EF с базой данных, и мне нужно отфильтровать дочерний атрибут. Я вижу множество сообщений в Интернете о том, как ядро ​​EF не может сделать это легко, но всем им более 2 лет (по большей части). В некоторых сообщениях говорилось, что функциональность для этого скоро появится, но я не могу найти его.

У меня есть таблицы «Компания» и «Проект». У компании есть много проектов, но у проектов есть только одна компания. У проекта есть конечная дата, и мне нужно отфильтровать, чтобы я брал только те проекты, у которых конечная дата еще не прошла. Вот мой код:

public IEnumerable<Company> Get()
{
    DateTime thisDay = DateTime.Today;
    var test = _context.Company
        .Include(Company => Company.Project)
        .Where(obj => obj.Project.Count > 0 && obj.Project.Any(r => r.EndDate > thisDay))
        .ToList();


    foreach (var item in test)
    {
        foreach (var project in item.Project)
        {
            project.Company = null; //This loop removes project.Company which causes
        }                           //an infinite self referencing loop
    }
    return test;
}

Странная часть этого кода - иногда он фильтрует некоторые результаты, но в других случаях он возвращает мне почти все данные. Я новичок в SQL и EF в целом. Что-то глупое, я делаю неправильно? Есть ли новый способ справиться с этим в EF core> 3.0?

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