У меня есть таблица sql с некоторыми столбцами nvarchar, давайте назовем их «Заголовок» и «Значение».
В настоящее время я использую запрос linqtosql, чтобы выполнить поиск по префиксу, чтобы найти строки в этой таблице, например
var result = from _item in GetTable()
where _item.Title.StartsWith( "hello" ) || _item.Value.StartsWith( "hello" )
select _item;
return result.Take( 100 );
, который генерирует соответствующий sql:
@p0=N'hello%'
@p1=N'hello%'
SELECT TOP (100) *
FROM [Table] AS [t0]
WHERE ([t0].[Title] LIKE @p0) OR ([t0].[Value] LIKE @p1)
, что несколько работает, но допустим, я хочу расставить приоритеты в столбце «Значение» над столбцом «Заголовок». т.е. если ограничение _item.Value.StartsWith возвращает 100 результатов, возвращаются только те. Если он возвращает 25 результатов, остальные 75 заполняются из ограничения «Заголовок».
Я мог бы сделать это, используя несколько запросов, но это могло бы заполнить мой набор результатов повторяющимися записями.
Можно ли это сделать в linqtosql или мне нужно вручную написать SQL-запрос, чтобы это исправить? В любом случае, как это можно сделать?