В LINQ я пытаюсь выполнить пользовательскую функцию внутреннего соединения, написанную для полнотекстового поиска, и результат Iqueryable.SQL: Вложенный запрос не имеет соответствующего ключа
Однако, я получаю следующее сообщение об ошибке при попытке to_ret.select(--something--).ToList()
Вложенный запрос не имеет соответствующего ключа
LINQ Код:
var sql_query = db.search(st);
var to_ret = from ts in sql_query
from t in table
where t.Id == ts.Value select t;
to_ret = to_ret.Include(x => x.table1)
.Include(x=> x.table2.Select(y=> y.table2Col));
to_ret.select(-something-).toList();
SQL код:
create function [dbo].[search]
(@keywords nvarchar(4000))
returns table
as
return (
select [key] from containstable(tb,(Name,Description),@keywords)
)
код, который работает на месте выше LINQ Код:
var ids = (from t in table join ts in db.search(st) on t.Id equals ts.Value select t.Id).ToList();
to_ret = to_ret.Where(x => ids.Contains(x.Id));
Однако код, который работает недостаточно эффективно, как он жадно загружает все ids
для сравнения