Używam wyszukiwania pełnotekstowego z LINQ w mojej aplikacji i ponieważ nie jest to obsługiwane przez LINQ Używam obejścia funkcja wartości tabela. Ta funkcja jest tworzona na serwerze SQL Server 2008.Parametr zapytania pełnotekstowego dla ciąg kwerendy pełnotekstowej jest nieprawidłowy
Co zaskakujące, pojawia się błąd "Parametr zapytania pełnego tekstu dla ciąg kwerend o pełnym tekście jest nieprawidłowy", gdy szukam prostego tekstu, np. "Manager"
Użyłem programu SQL Server Profiler i dowiedziałem się, że LINQ wygenerował parametr jako nvarchar (4000) zamiast nvarchar (250), który jest w mojej funkcji.
Największa niespodzianka pojawiła się, gdy zmieniłem moją funkcję SQL Server, więc akceptuje parametr jako nvarchar (4000) zamiast nvarchar (250) i problem został rozwiązany.
Grałem również, aby zmienić parametr na nvarchar (2000) i mniej, ale to też nie zadziałało.
Czy ktoś wie, dlaczego tak się zachowuje?
Zaktualizowano 18 listopada 2013 - Dobre i złe wieści
Dobra wiadomość - jestem teraz przy użyciu Entity Framework 6 dla tego konkretnego przykładu i nie jest już potrzebne do korzystania nvarchar (4000)
Bad news - Musisz użyć zamiast nvarchar (max) :-(
Jedyną rzeczą, która przychodzi do głowy, to że masz pamięci podręcznej strukturę tabeli bazy danych podczas projektowania dbml. Możesz go całkowicie zmienić na nvarchar (max) i zmienić go w swoją aplikację. –