Я уже некоторое время пользуюсь linq, но нигде не сталкивался с такой ситуацией, и мой google-fu меня подвел.
В основном у меня есть два набора данных, которые я не определил, итеперь приходится использовать для возврата данных.
class Header
{
string COMPANY_CODE
string REFERENCE_NBR
string REFERENCE_DUPLICATE
...
}
class Line
{
string COMPANY_CODE
string REFERENCE_NBR
string REFERENCE_DUPLICATE
string STOCK_CODE
string DESCRIPTION
...
}
С точки зрения базы данных они объединяются следующим образом
select *
from Header
inner join Line
on header.COMPANY_CODE = Line.COMPANY_CODE
and header.REFERENCE_NBR = Line.REFERNCE_NBR
and header.REFERENCE_DUPLICATE = LINE.REFERENCE_DUPLICATE
и имеют отношение 1: Многие.
Я реализую функцию поиска для спискаэто означает поиск любых строк со значением в STOCK_CODE или DESCRIPTION, которое соответствует заданному поисковому запросу.Я видел несколько способов объединения с использованием запроса linq, но из-за нескольких условий соединения я немного растерялся и не нашел примеров того, что я пытаюсь сделать.
Если бы я былнаписать заявление, которое я пытаюсь получить в lamda / linq в SQL, это будет:
declare @searchtxt nvarchar(max) = 'test'
Select *
from header h
where exists (
select *
from Line l
where
(
l.stock_code like '%'+@searchtxt+'%'
or l.description like '%'+@searchtxt+'%'
)
and h.COMPANY_CODE = l.COMPANY_CODE
and h.REFERENCE_NBR = l.REFERENCE_NBR
and h.REFERENCE_DUPLICATE = l.REFERENCE_DUPLICATE
)
Любая помощь будет признательна!