【发布时间】:2020-10-08 19:45:51
【问题描述】:
我想从 visaConfigurationDocuments 表中获取 VisaCodeIds 列表并与 visaCodes 表一起获取 VisaCodeName 和 我收到以下查询的此错误:
public List<VisaCodesNamesDto> GetVisaCodesNames(List<VisaCodesNamesInputDto> input)
{
var result = (from visaConfigurationDocuments in Context.VisaConfigurationDocuments
join visaCodes in Context.VisaCodes
on visaConfigurationDocuments.VisaCodeId equals visaCodes.VisaCodeId
where (input.Any(x => x.VisaId == visaConfigurationDocuments.VisaId && x.VersionNo == visaConfigurationDocuments.VersionNo))
select new VisaCodesNamesDto
{
VisaCodeName = visaCodes.NameAr,
VisaId = visaConfigurationDocuments.VisaId,
VersionNo = visaConfigurationDocuments.VersionNo
}).ToList();
return result;
}
}
【问题讨论】:
-
好吧,考虑一下如何将 LINQ 转换为 SQL。什么 SQL 代码将表示
List<VisaCodesNamesInputDto>类型的非数据库对象?然后考虑错误消息的文本。我相信你会拼凑起来的。 -
我知道问题,但如何有效地解决它
-
您可以在查询中运行单个变量 where 子句,然后在返回结果后按内存中的第二个变量进行过滤。
标签: c# entity-framework linq asp.net-web-api