Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
LINQ to SQL, yazdığınız sorguları parametreli SQL sorgularına (metin biçiminde) çevirir ve işlenmek üzere SQL sunucusuna gönderir.
SQL, uygulamanız için yerel olarak kullanılabilir olabilecek çeşitli yöntemleri yürütemez. LINQ to SQL, bu yerel yöntemleri SQL ortamında kullanılabilen eşdeğer işlemlere ve işlevlere dönüştürmeye çalışır. .NET Framework yerleşik türlerindeki çoğu yöntem ve işleç, SQL komutlarına doğrudan çeviriler içerir. Bazıları kullanılabilir işlevlerden oluşturulabilir. Üretilemeyenler çalışma zamanı özel durumları oluşturur. Daha fazla bilgi için bkz . SQL-CLR Tür Eşlemesi.
LINQ to SQL sorgusunun ExecuteQuery özel bir görev için yetersiz olduğu durumlarda, yöntemini kullanarak bir SQL sorgusu yürütebilir ve sorgunuzun sonucunu doğrudan nesnelere dönüştürebilirsiniz.
Örnek 1
Aşağıdaki örnekte, sınıfın verilerinin iki tabloya Customer
(customer1 ve customer2) yayıldığını varsayalım. Sorgu bir nesne dizisi Customer
döndürür.
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
IEnumerable<Customer> results = db.ExecuteQuery<Customer>
(@"SELECT c1.custid as CustomerID, c2.custName as ContactName
FROM customer1 as c1, customer2 as c2
WHERE c1.custid = c2.custid"
);
Dim db As New Northwnd("c:\northwnd.mdf")
Dim results As IEnumerable(Of Customer) = _
db.ExecuteQuery(Of Customer) _
("SELECT c1.custID as CustomerID," & _
"c2.custName as ContactName" & _
"FROM customer1 AS c1, customer2 as c2" & _
"WHERE c1.custid = c2.custid")
Tablosal sonuçlardaki sütun adları varlık sınıfınızın sütun özellikleriyle eşleştiği sürece LINQ to SQL nesnelerinizi herhangi bir SQL sorgusundan oluşturur.
Örnek 2
ExecuteQuery yöntemi ayrıca parametrelere izin verir. Parametreli sorgu yürütmek için aşağıdaki gibi bir kod kullanın.
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
IEnumerable<Customer> results = db.ExecuteQuery<Customer>
("SELECT contactname FROM customers WHERE city = {0}",
"London");
Dim db As New Northwnd("c:\northwnd.mdf")
Dim results As IEnumerable(Of Customer) = _
db.ExecuteQuery(Of Customer) _
("SELECT contactname FROM customers WHERE city = {0}, 'London'")
Parametreler, ve String.Format()
tarafından Console.WriteLine()
kullanılan aynı curly gösterimi kullanılarak sorgu metninde ifade edilir. Aslında, String.Format()
aslında sağladığınız sorgu dizesinde çağrılır ve küme ayraçlı parametreleri , @p1 ..., @p(n)gibi @p0oluşturulan parametre adlarıyla değiştirerek.