Mam pewne problemy z linq do podmiotów w ramach encji ado.net. W zasadzie to, co robię jest taka:linq do podmiotów generowanych sql
var results = (from c in companies
where c.Name.StartsWith(letter)
select c);
i ten dostaje tłumaczone do SQL jako coś w rodzaju:
WHERE (CAST(CHARINDEX(@p, [Extent1].[Name]) AS int)) = 1
który jest w porządku, ale moja tabela ma miliony rekordów, więc to działa bardzo wolno. Co muszę go wygenerować jest coś takiego jak:
WHERE Name LIKE @p + '%'
mam przeszukiwane wysokiego i niskiego i nie można znaleźć żadnych rozwiązań wyjątkiem użyć procedury przechowywanej lub użyj podmiotu SQL ...
Czy istnieje sposób zrobić to za pomocą linq? Być może w jakiś sposób rozszerzając linq na podmioty linq provider, lub w jakiś sposób przechwytując drzewo poleceń lub wygenerowane zapytanie?
Jest to rodzaj rzeczy, które sprawia, że bardzo relunctant wyrzucić moje procedury przechowywanej warstwę na rzecz wszystkiego, co generuje SQL. –