C# 是否可以将LinqKit PredicateBuilder作为子查询插入?
我现在有一个工作的多级谓词,如下所示C# 是否可以将LinqKit PredicateBuilder作为子查询插入?,c#,entity-framework,predicate,linqkit,C#,Entity Framework,Predicate,Linqkit,我现在有一个工作的多级谓词,如下所示 var predicate = PredicateBuilder.New<Patient>(); foreach (var code in codeArray) // ect..["AB12", "W231", "Q213"] { string localCode = code; predicate.Or(p => p.Requests.Any( u => u.Records.Any(
var predicate = PredicateBuilder.New<Patient>();
foreach (var code in codeArray) // ect..["AB12", "W231", "Q213"]
{
string localCode = code;
predicate.Or(p => p.Requests.Any(
u => u.Records.Any(
t => t.OutgoingRecords.Any(
s => s.Code == localCode)
)
)
);
}
res = query.AsExpandable().Where(predicate);
// Query is built up from an outside source and is eventually turned into a list via .ToListAsync()
当我真正应该制作的是
query = p => p.PatientEpisodes.Any(u => u.EpisodeGroupings.Any(t => t.EpisodeDiagnoses.Any(s => s.Code == 'AB12' || s.Code == 'W312' || s.Code == 'Q213')))
有没有办法在查询的子级别插入谓词,如下面所示?我目前的尝试到目前为止都失败了
var predicate = PredicateBuilder.New<RecordCode>();
foreach (var code in codeArray)
{
string localCode = code;
predicate.Or(p => p.Code == localCode);
}
query = query.AsExpandable().Where(
s => s.Requests.Any(
c => c.Records.Any(
d => d.OutgoingRecords.Any(predicate))));
var predicate=PredicateBuilder.New();
foreach(codeArray中的var代码)
{
字符串localCode=code;
谓词.Or(p=>p.Code==localCode);
}
query=query.AsExpandable()。其中(
s=>s.Requests.Any(
c=>c.Records.Any(
d=>d.OutgoingRecords.Any(谓词));
非常感谢。这方面运气好吗?我也面临着同样的问题。我恐怕没有,我不得不坚持一些相当繁重的问题,幸运的是这些问题还不是太密集。这方面运气好吗?我也面临着同样的问题。恐怕不是,我不得不坚持一些相当繁重的查询,幸运的是这些查询还不是太密集。
var predicate = PredicateBuilder.New<RecordCode>();
foreach (var code in codeArray)
{
string localCode = code;
predicate.Or(p => p.Code == localCode);
}
query = query.AsExpandable().Where(
s => s.Requests.Any(
c => c.Records.Any(
d => d.OutgoingRecords.Any(predicate))));