Получить только последнюю строку вставки из внешней таблицы, используя EF - PullRequest
0 голосов
/ 26 июня 2018

У меня есть этот код для получения данных из БД

 result = Context.APP_AuthorityHasamaForm.Where(x =>
                x.UpdateTypeId == (int) UpdateType.Unit && x.AuthorityNum == authorityUnit.AuthorityNum &&
                x.InsertDate >= authorityUnit.FromDate && x.HasamaFormStatus == (int) SendType.Meser &&
                (x.APP_SignatureAuthorityHasamaForm.All(s =>
                    s.RoleId != (int) Role.EligibilityWorker1 && s.RoleId != (int) Role.DepartmentManager2 &&
                    s.RoleId != (int) Role.Treasurer3))).ToList();

Это работа.
Теперь я хотел бы добавить к нему фильтр, чтобы только последняя строка вставки в "APP_SignatureAuthorityHasamaForm"выйдет.
У меня есть столбец "SignatureDate" в этой таблице, в котором указана дата вставки.

Я нашел похожий вопрос здесь: Аналогичное количество

1 Ответ

0 голосов
/ 26 июня 2018

Благодаря комментариям @Flater я вижу смысл вопроса.Я действительно не знаю, есть ли возможность получить только подмножество записей в Entity-Framework при восстановлении родительской записи (я думаю, что нет).Однако этот обходной путь может быть действительным для вас:

result = Context.APP_AuthorityHasamaForm.Where(x =>
                x.UpdateTypeId == (int) UpdateType.Unit && x.AuthorityNum == authorityUnit.AuthorityNum &&
                x.InsertDate >= authorityUnit.FromDate && x.HasamaFormStatus == (int) SendType.Meser &&
                (x.APP_SignatureAuthorityHasamaForm.All(s =>
                    s.RoleId != (int) Role.EligibilityWorker1 && s.RoleId != (int) Role.DepartmentManager2 &&
                    s.RoleId != (int) Role.Treasurer3)))
               .Select(s=> new APP_AuthorityHasamaForm{
                  [Property] = s.[Property] //as many times as needed
                  APP_SignatureAuthorityHasamaForm = new List<APP_SignatureAuthorityHasamaForm> {s.APP_SignatureAuthorityHasamaForm.OrderByDescending(x => x.SignatureDate).FirstOrDefault()}
               })
               .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...