我希望返回所有t1对象及其相关信息,其中"DeleteFlag“==为假,其中与其关联的t2对象的"DeleteFlag”也为假,T2的"SubmittedFlag“==为真。
我想将这些合并到一个很好的Linq to SQL语句中,而不是我目前正在走的很长的路...
var record = context.Records.Where(model => model.DeleteFlag == false).Include(model => model.Forms).toList();
List<Records> returnModel = new List<Records>();
foreach(var r in record)
{
foreach(var f in r.Forms)
{
if(f.SubmissionFlag == true && f.DeleteFlag == false)
{
returnModel.add(f);
}
}
}有了这个模型,我可能会在第一次数据库拉取时加载很多额外的行,而且我不仅要迭代所有这些额外的记录,还要遍历相关的表单,直到我找到我的主要条件。
在我看来,这在linq语句中似乎是可行的,就像下面这样,但我一次又一次地出错:
var records = context.Records.Where(model => model.DeleteFlag == false)
.Include(model => model.Forms
.Where(form => form.DeleteFlag == false && form.Submissionflag == true)).toList();在我写一个SQL存储的proc并调用它之前,你知道如何在一个漂亮的Linq to SQL语句中清理所有这些递归工作吗?
发布于 2015-03-28 03:15:38
就像这样。
var records = from record in context.Records
where !record.DeleteFlag
from form in record.Forms
where !form.DeleteFlag && form.Submissionflag
select form;
return new List<Record>(records);发布于 2015-03-28 03:11:42
它应该是有效的:
var returnModel = context.Records
.Where(model => !model.DeleteFlag)
.SelectMany(model => model.Forms)
.Where(form => !form.DeleteFlag && form.Submissionflag)
.ToList();https://stackoverflow.com/questions/29308343
复制相似问题