c# - 具有多个表的 C# 谓词生成器
问题描述
我有 2 个表,Receipts
其中包含Id
,InvoiceId
等列和Invoices
, 其中包含Id
, InvoiceNo
, RevisionNo
。一个收据可以有多个发票。所以在我的收据列表页面中有一个名为的列InvoiceSet
,它将InvoiceNo + RevisionNo
以逗号分隔的方式显示 ()列表
例如:2000155 A, 200111 B
在单个列中。我的列表页面顶部有一个搜索字段,用户可以使用关键字搜索整个列表。为此,我正在使用谓词生成器。因此,当用户搜索200111 B时,列表应该过滤并显示具有给定搜索键的行。由于给定的搜索键是 Invoice 表中 invoiceNo 和 RevisionNo(200111 = invoiceno,B = RevisionNo)的组合,因此我无法使用 predicatebuilder 构建可以组合两列的谓词。
我试过这样:
p.Receipts.Any(a => a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo).Contains(criteria.Search.Value)
但它给了我错误说明
无法将 lambda 表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型
InvoiceNo 和 RevisinNo 都是字符串类型
谓词构建器是否有可能实现我正在寻找的东西?
解决方案
应该是:
p.Receipts.Any(a => (a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo).Contains(criteria.Search.Value))
推荐阅读
- git - 有没有办法标记 git 提交以防止推送(即使跨合并/樱桃挑选)?
- c# - 在存储库中使用 ThenInclude() 方法
- discord.py - 每次有人使用命令时如何在数字上加 + 1
- python - 如何从python中没有空格的字符串中提取数据
- python-3.x - Spacy lemmatization:单词“number”的错误结果
- python - 如何通过venv指定用于创建虚拟环境的python版本?
- python - 用 Python 绘制从 excel 导入的相关表
- delphi - 使用 RTTI 从已知类型在 Delphi 中设置 TValue 记录
- augmented-reality - ARKit - 测量单位的官方来源?
- gtk - gtk height_for_width 由于最小宽度较小,导致给定宽度的窗口高度不合理