C# 累积记录的LINQ
我有两个实体,分别称为C# 累积记录的LINQ,c#,linq,entity-framework,ado.net,visual-studio-lightswitch,C#,Linq,Entity Framework,Ado.net,Visual Studio Lightswitch,我有两个实体,分别称为患者和电话呼叫历史,具有1-m关系 查询如下:, 数据模型是 以下是示例电话数据 如果在接下来的几份记录中没有完成任何联系目的,我想返回需要回拨联系结果的患者记录。基本上,我正在尝试创建一个警报/通知,供用户跟进 我已经想出了以下代码 query = query .Where(m => !m.PatientsMasterItem .PatientsTelephoneFollowupDetail.Any(l => l.St
患者
和电话呼叫历史
,具有1-m关系
查询如下:,
数据模型是
以下是示例电话数据
如果在接下来的几份记录中没有完成任何联系目的,我想返回需要回拨联系结果的患者记录。基本上,我正在尝试创建一个警报/通知,供用户跟进
我已经想出了以下代码
query = query
.Where(m => !m.PatientsMasterItem
.PatientsTelephoneFollowupDetail.Any(l => l.Status == "1"));
但在上面给出的示例中它不起作用(请参阅测试数据)。但最后一条记录仍需要后续操作。这不是编译的-这只是一个提示。你需要像这样的东西
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'
}
这不是编译的-这只是一个提示。你需要像这样的东西
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'
}
完整的代码如下
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";
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用Microsoft.LightSwitch;
使用Microsoft.LightSwitch.Security.Server;
名称空间LightSwitch应用程序
{
公共部分类ApplicationDataService
{
部分无效状态CallbackRequired\u预查询(参考IQueryable查询)
{
var required=query.Where(PatientNeedCallback);
}
公共静态布尔PatientNeedCallback(PatientTelephoneFollowUpDetail p)
{
var last=p.PatientsMasterItem.PatientsTelephoneFollowupDetail.LastOrDefault(c=>c.Status==“7”| | c.Status==“1”);
返回last!=null&&last.Status==“7”;
}
}
}
完整的代码如下
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";
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用Microsoft.LightSwitch;
使用Microsoft.LightSwitch.Security.Server;
名称空间LightSwitch应用程序
{
公共部分类ApplicationDataService
{
部分无效状态CallbackRequired\u预查询(参考IQueryable查询)
{
var required=query.Where(PatientNeedCallback);
}
公共静态布尔PatientNeedCallback(PatientTelephoneFollowUpDetail p)
{
var last=p.PatientsMasterItem.PatientsTelephoneFollowupDetail.LastOrDefault(c=>c.Status==“7”| | c.Status==“1”);
返回last!=null&&last.Status==“7”;
}
}
}
两个问题。你能展示你的域模型吗?查询的初始值是什么?您的屏幕截图与您的查询有何关联?屏幕截图显示了一名患者的样本数据。状态1涉及“联系目的已完成”两个问题。你能展示你的域模型吗?查询的初始值是什么?您的屏幕截图与您的查询有何关联?屏幕截图显示了一名患者的样本数据。状态1指“联系人目的已完成”