我有2个表,Receipts
包含Id
,InvoiceId
等列,而Invoices
包含Id
,InvoiceNo
, RevisionNo
。一张收据可以有多个发票。因此,在我的收据清单页面上,有一个名为InvoiceSet
的列,它将以逗号分隔的方式显示(InvoiceNo + RevisionNo
)的列表
例如:2000155 A, 200111 B
在单列中。我的列表页面上方有一个搜索字段,用户可以在其中使用关键字搜索整个列表。为此,我正在使用predicatebuilder。因此,当用户搜索 200111 B 时,列表应进行过滤并显示具有给定搜索关键字的行。由于给定的搜索关键字是发票表中的invoiceNo和RevisionNo的组合(200111 = invoiceno,B = RevisionNo),因此我无法构建可以使用predicatebuilder组合两列的谓词。
我尝试过这样:
p.Receipts.Any(a => a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo).Contains(criteria.Search.Value)
但这给了我错误提示
无法将lambda表达式转换为预期的委托类型,因为 块中的某些返回类型不是隐式可转换的 委托返回类型
InvoiceNo和RevisinNo均为字符串类型
predicatebuilder是否可以实现我正在寻找的东西?
答案 0 :(得分:0)
应该是:
p.Receipts.Any(a => (a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo).Contains(criteria.Search.Value))