【发布时间】:2021-09-28 05:24:27
【问题描述】:
我尝试运行一个查询来填充 Excel 表。这是它的代码。
queryable = (from merchantTerminalDetails in context.Posh5ProdMerchantTerminalDetails
join merchantDetails in context.MerchantDetails
on merchantTerminalDetails.MerchantRecord equals merchantDetails.Id
join merchantContactDetails in context.Posh5ProdMerchantContactDetails
on merchantDetails.Id equals merchantContactDetails.MerchantRecord
where (merchantDetails.BypassAdviceVerification.ToString() == AdviceExemption &&
merchantDetails.BypassCreditVerification.ToString() == RefundExemption && merchantTerminalDetails.Tip.ToString() == TipAdjustment && merchantDetails.CoreBankingRecord.ToString() == Region)
select new OreDetails
{
MerchantRecord = merchantTerminalDetails.MerchantRecord,
LegalName = merchantDetails.LegalName,
PhoneNumber = merchantDetails.PhoneNumber,
EmailAddress = merchantContactDetails.EmailAddress,
TerminalId = merchantTerminalDetails.TerminalId,
}).AsQueryable();
}
我注意到的是,当我删除 where (merchantDetails.BypassAdviceVerification.ToString() == AdviceExemption && merchantDetails.BypassCreditVerification.ToString() == RefundExemption && merchantTerminalDetails.Tip.ToString() == TipAdjustment && merchantDetails.CoreBankingRecord.ToString() == Region) 时,我的查询有效并且我可以生成我的 excel 文件,但不幸的是我无法使用我的参数进行过滤。现在我确实查看了我在这里找到的答案 Migrating from EF Core 2 to EF Core 3 但我似乎无法弄清楚如何修复我的 where 语句以使其正常工作。
任何帮助将不胜感激
【问题讨论】:
-
异常是否为您提供了有关无法翻译内容的详细信息?你说如果你删除整个
where...子句它可以工作,你有没有试过删除它的部分,看看哪些中断,哪些没有?您正在使用哪个 EF 提供商,例如SQL Server、Postgres 等? -
对于所有 ToString 的内容,请考虑更改 c# 变量的类型以匹配数据库中的类型,而不是相反
-
@ZacFaragher 它的 SQL 服务器,我已经尝试删除它的部分。任何时候都有休息的地方
-
@CaiusJard 我正在尝试这个
标签: c# entity-framework