Temelde PROJECTS adlı bir tablodaki bir aramayı döndüren bu Linq to SQL sorgu sırasına sahibim. ve yavaş yavaş kurmak için ertelenmiş yürütmeden faydalanıyorum. Tek bir sorguda birden çok DataContexts kullanarak SQL için Linq SQL
var query = from p in objDBContext.PROJECTs
where (p.PROVIDER_ID == cwForm.productForm)
select p;
query = from p in query
where p.SubmittedDate >= cwForm.beginDateForm
select p;
LINQ
ISDATE()
veya tam metin araması desteklemediği için yardımcı fonksiyonu olarak sayıl değerlerini ve tablo değerleri döndürür birkaç SQL işlevlerini yazdı.
Projects
tablosuyla aynı .dbml dosyasındalar.
yüzden şimdi var:
var dateQuery = from d in objDBContext.ISDATE
select d;
//returns a bool
var ftsQuery = from f in objDBContext.FullTextSearch
select f;
//returns a valued-table with the primary keys of hits with fulltextsearch
Sorum şu, ben orijinal sorgu p bu yeni objDBContexts kullanırım nasıl? Ayrıca, executequery() öğesinin orijinal sorguya nasıl eşlendiğini bulmakla da ilgileniyorum. gibi
şey:
query = from p in query
from d in dateQuery
from f in ftsQuery
where d.ISDATE(p.Field1) && f.FullContextSearch(searchString)
select p;
ben mantıklı umuyoruz. Birkaç tür uyumsuz hatam var ve bir süredir googling denedim ama bir şey bulamadım. bağlam sınıfına tüm yöntemlerini tanımladığınız beri
teşekkürler Rex, bu SQL'in genel maliyeti ne olurdu? LINQ2SQL kullanarak dinamik SQL sorguları oluşturmanın basitliğini ve temizliğini gerçekten çok seviyorum. ve FullTextSearch, searchString ile eşleşen satırların dizin anahtarlarıyla değerli bir tablo döndürür. Bir Katkı burada en verimli olur mu? – stevenjmyu
Bireysel maliyet yükü özellikle büyük değil sanırım. Başvurunuz hakkında daha fazla bilgi sahibi olmadan söylemek zor. Ancak, bir performans sorunu ortaya çıktığında, SQL'e gidiş-dönüşlerin sayısı her zaman bakılacak ilk şeylerden birisidir. –