У меня есть 2 таблицы: Receipts
, которая содержит такие столбцы, как Id
, InvoiceId
и т. д., и Invoices
, которая содержит Id
, InvoiceNo
, RevisionNo
. Квитанция может иметь несколько счетов-фактур. Итак, на моей странице со списком квитанций есть столбец с именем InvoiceSet
, в котором будет отображаться список (InvoiceNo + RevisionNo
) через запятую.
Eg : 2000155 A, 200111 B
в один столбец. У меня есть поле поиска в верхней части страницы списка, где пользователь может искать весь список, используя ключевые слова. Для этой цели я использую predicatebuilder. Таким образом, когда пользователь ищет 200111 B, список должен фильтроваться и показывать строку с заданным ключом поиска. Поскольку данный ключ поиска представляет собой комбинацию номера счета-фактуры и номера редакции (200111 = номер счета-фактуры, B = номер версии) из таблицы счетов-фактур, я не могу создать предикат, который может объединять два столбца с помощью predicatebuilder.
Я пробовал так:
p.Receipts.Any(a => a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo).Contains(criteria.Search.Value)
но это дает мне сообщение об ошибке
Невозможно преобразовать лямбда-выражение в предполагаемый тип делегата, поскольку некоторые возвращаемые типы в блоке не могут быть неявно преобразованы в возвращаемый тип делегата.
И InvoiceNo, и RevisinNo имеют строковый тип
Возможно ли с помощью predicatebuilder достичь того, что я ищу?
Any
должна возвращать логическое значение.a.Invoice.InvoiceNo + " " + a.Invoice.RevisionNo
не является логическим значением, это строка, поэтому ваша ошибка - person Liam   schedule 22.03.2019