LINQ для накопительных записей - PullRequest
1 голос
/ 02 апреля 2012

У меня есть две сущности с именами Patients и TelephoneCallsHistory с 1-м Отношения.

Запрос ниже, enter image description here

Модель данныхis

enter image description here

Ниже приведены примеры телефонных данных enter image description here

Я хотел бы вернуть записи пациентов, для которых результатом контакта является Call Back Требуется при условиив следующих нескольких записях цель контакта не выполнена.В основном я пытаюсь создать предупреждение / уведомление для пользователя, чтобы следить.

Я придумал следующий код

query = query
     .Where(m => !m.PatientsMasterItem
             .PatientsTelephoneFollowupDetail.Any(l => l.Status == "1"));  

Но он не работает в приведенном выше примере (см. Данные испытаний).Но все же последняя запись требует действий для продолжения.

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Это не скомпилировано - это только подсказка. Вам нужно что-то вроде

        var required = query.Where(DoesPatientNeedCallback);

        public static bool DoesPatientNeedCallback(Patient p)
        {
              var last = p.PatientsMasterItem.PatientsTelephoneFollowupDetail.LastOrDefault(c => c.Status == 'Contact Required' || c.Status == 'Contact Purpose Completed);
              return last != null && last.Status == 'Contact Required'

        }
0 голосов
/ 03 апреля 2012

Полный код ниже

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.LightSwitch;
using Microsoft.LightSwitch.Security.Server;

namespace LightSwitchApplication
{
public partial class ApplicationDataService
{

    partial void StatusCallBackRequired_PreprocessQuery(ref IQueryable<PatientsTelephoneFollowupDetail> query)
    {
        var required = query.Where(PatientNeedCallback);

    }

    public static bool PatientNeedCallback(PatientsTelephoneFollowupDetail p)
    {
        var last = p.PatientsMasterItem.PatientsTelephoneFollowupDetail.LastOrDefault(c => c.Status == "7" || c.Status == "1");
        return last != null && last.Status == "7";

    }
}    


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