Sql Server 2008 veritabanını sorgulayan ASP.NET MVC 3 ve Entity Framework 4 kullanılarak geliştirilmiş bir web sitem var. Bu, yaklaşık 10 alanlı bir arama formu içerir ve kullanıcı gönder düğmesini tıklattığında, yalnızca belirtilen arama alanlarını içeren bir Boş Varlık SQL isteğini dinamik olarak yaratır ve boş olanları atlar. İşe yarıyor. Çok uzak çok iyi.Sql Sunucu Freetext yoluyla Entity Framework
Şimdi, istemci alanlarından birine yönelik bir Tam Metin Arama davranışını istiyor. doğal olarak şimdiye kadar yalnızca kullandım çünkü
- Varlık Framework kapsamaz: (AFAIK) çünkü oldukça karmaşık olarak bu isteği bakın "statik" SP'ler, mantığı .NET kodunda tutar. Bu yüzden prosedürün içindeki sorguyu oluşturmamaya çalışmak istiyorum. Ve olası arama alanı kombinasyonu başına bir prosedür oluşturmak bir seçenek değildir. Bugüne kadar düşünebildiğim
Çözümleri:
- Alma
- (ben bu olsa mümkün olduğundan emin değilim) WHERE yan tümcesinde bir Seach preadicate olarak saklı yordam veya kullanıcı tanımlı fonksiyonu koymak FTS, geçici bir tabloda tek başına sonuçlanır ve bu geçici tablodaki diğer filtreleri yürütür. Bu teknikle çok sayıda FTS sonucu varsa, kötü performanslardan korkuyorum ...
Bunun için en iyi yolu nedir?
+1 Bu iyi bir nokta: gibi
Yani, görünecektir. Bu şekilde yaptığınızda, SQL sunucusunda tam metin araması yapabilirsiniz. Bence 'sp_executesql' gerekli değildir, çünkü doğrudan ExecuteStoreCommand tarafından kullanılmaktadır. –
Bu öneri için teşekkürler. Varlık sorgu oluşturma, sonra SQL sorgusu oluşturma ve bir FREETEXT bir ile LIKE onayı yerine, bunu yürütmeden önce bunu geliştirmeye çalıştı. – Shtong