Ali Majed HA Ответов: 1

Как восстановить отдельные строки на основе столбца при объединении в entity framework?


Я хочу объединить 2 таблицы и получить отдельные строки на основе 1 столбца в entity framework.

Я читал сообщения в интернете, в том числе и так.

В приведенном ниже коде,
1. я присоединяюсь к 2 таблицам на основе CurrentTurnID ключ
2. Я в таблице фильтр по функции, которые я хочу
3. я фильтрую таблицу, устанавливая условия для выбранных объектов
4. я выбираю столбец, чтобы вычислить сумму всех его значений

Мне нужно получить записи, которые имеют то же самое CurrentTurnID только один раз. Вот мой код:

int services = Convert.ToInt32(database.Tbl_CurrentTurn.AsNoTracking()
            .Join(database.Tbl_pay.AsNoTracking(), f => f.CurrentTurnID,
               s => s.CurrentTurnID, (f, s) => new
               {
                   f.CurrentTurnOfficialID,
                   f.CurrentTurnID,
                   f.SickID,
                   f.Remove,
                   f.Payment,
                   f.ServicePayment,
                   s.isDeposit
               })
            .Where(w => w.SickID == SickId && w.Remove != true && w.Payment == true && w.isDeposit != true)
            .Select(s => s.ServicePayment).DefaultIfEmpty(0).Sum());


Если я добавлю Distinct() после оператора Select (), он будет учитывать следующее: ServicePayment для фильтрации отдельных строк.

Изображение прикреплено к моему Dropbox. 2-я и 3-я записи имеют то же самое CurrentTurnID ценность. Поэтому я хочу рассмотреть только один из них. Затем суммируйте записи по ServicePayment колонка. Пожалуйста, обратите внимание, что другие столбцы отличаются в этих 2 записях.

Что я уже пробовал:

Я читал сообщения в интернете. Ни одно из решений мне не помогло.

Christian Graus

Попробуйте использовать group by? Затем вы можете использовать max, если все значения одинаковы (или min)

1 Ответов

Рейтинг:
0

Christian Graus

Попробуйте использовать group by? Затем вы можете использовать max, если все значения одинаковы (или min)