c# - 无法创建类型为“x”的常量值。此上下文仅支持原始类型或枚举类型
问题描述
我想从 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;
}
}
解决方案
public List<VisaCodesNamesDto> GetVisaCodesNames(List<VisaCodesNamesInputDto> input) {
var ids = input.Select(i => i.VisaId).ToList();
// filter by a single variable...
var result = Context.VisaConfigurationDocuments
.Where(vcd => ids.Contains(vcd.VisaId))
.Select(vcd => new {
VisaCodeName = visaCodes.NameAr,
VisaId = visaConfigurationDocuments.VisaId,
VersionNo = visaConfigurationDocuments.VersionNo
})
.ToList();
// now filter by the second variable...
result = result
.Where(dto => input.Any(i => i.VisaId == dto.VisaId && i.VersionNo == dto.VersionNo)
.ToList();
return result;
}
推荐阅读
- android - Google Developer Console 内部测试、Beta 版和 Alpha 版
- google-search-console - 旧 Google Search Console 和新 Google Search Console 中的错误数量不同
- qt - QML 中的 qmlRegisterSingletonType 和 setContextProperty 有什么区别?
- c++ - 运行时错误,虽然我得到了预期的输出
- api - Softlayer API:如何获取我们可以与 softlayer api 一起使用的所有 Virtual_Guest 配置类型
- java - 如何从数据库中以基于复杂级别的格式获取 JSON 格式的数据
- shell - 如何在运行的 shell 脚本中输入
- mysql - 从两个表中选择两列不起作用
- ruby - 在 Ruby-Selenium 中单击无头浏览器中的按钮时出现错误页面
- reactjs - React js webpack无法安装