DataContext.ExecuteQuery Yöntem

Tanım

Aşırı Yüklemeler

Name Description
ExecuteQuery(Type, String, Object[])

SQL sorgularını doğrudan veritabanında yürütür.

ExecuteQuery<TResult>(String, Object[])

SQL sorgularını doğrudan veritabanında yürütür ve nesneleri döndürür.

ExecuteQuery(Type, String, Object[])

SQL sorgularını doğrudan veritabanında yürütür.

public:
 System::Collections::IEnumerable ^ ExecuteQuery(Type ^ elementType, System::String ^ query, ... cli::array <System::Object ^> ^ parameters);
public System.Collections.IEnumerable ExecuteQuery(Type elementType, string query, params object[] parameters);
member this.ExecuteQuery : Type * string * obj[] -> System.Collections.IEnumerable
Public Function ExecuteQuery (elementType As Type, query As String, ParamArray parameters As Object()) As IEnumerable

Parametreler

elementType
Type

Döndürülecek öğesinin IEnumerable<T> türü.

Sorgunun sonucundaki sütunları nesnedeki alanlarla veya özelliklerle eşleştirme algoritması aşağıdaki gibi çalışır:

Bir alan veya özellik belirli bir sütun adıyla eşlenmişse, sonuç kümesinde bu sütun adı beklenir.

Bir alan veya özellik eşlenmemişse, sonuç kümesinde alan veya özellik ile aynı ada sahip bir sütun beklenir.

Karşılaştırma, önce büyük/küçük harfe duyarlı eşleşme aranarak gerçekleştirilir. Bu eşleşme bulunamazsa, büyük/küçük harfe duyarlı olmayan eşleşme için sonraki bir arama yapılır.

Sorgu, aşağıdaki koşulların tümü doğru olduğunda nesnenin tüm izlenen alanlarını ve özelliklerini (ertelenmiş olarak yüklenenler dışında) döndürmelidir:

T tarafından açıkça izlenen bir varlıktır DataContext.

ObjectTrackingEnabled, true'e eşittir.

Varlığın birincil anahtarı vardır.

Aksi takdirde bir özel durum oluşturulur.

query
String

Yürütülecek SQL sorgusu.

parameters
Object[]

Komutuna geçirilecek parametre dizisi. Şu davranışı unutmayın:

Dizideki nesne sayısı, komut dizesinde tanımlanan en yüksek sayıdan küçükse, bir özel durum oluşturulur.

Dizi, komut dizesinde başvurulmayan nesneler içeriyorsa, hiçbir özel durum oluşturulur.

Bir parametre ise null, parametresine DBNull.Valuedönüştürülür.

Döndürülenler

IEnumerable<T> Sorgu tarafından döndürülen nesne koleksiyonu.

Şunlara uygulanır

ExecuteQuery<TResult>(String, Object[])

SQL sorgularını doğrudan veritabanında yürütür ve nesneleri döndürür.

public:
generic <typename TResult>
 System::Collections::Generic::IEnumerable<TResult> ^ ExecuteQuery(System::String ^ query, ... cli::array <System::Object ^> ^ parameters);
public System.Collections.Generic.IEnumerable<TResult> ExecuteQuery<TResult>(string query, params object[] parameters);
member this.ExecuteQuery : string * obj[] -> seq<'Result>
Public Function ExecuteQuery(Of TResult) (query As String, ParamArray parameters As Object()) As IEnumerable(Of TResult)

Tür Parametreleri

TResult

Döndürülen koleksiyondaki öğelerin türü.

Parametreler

query
String

Yürütülecek SQL sorgusu.

parameters
Object[]

Komutuna geçirilecek parametre dizisi. Şu davranışı unutmayın:

Dizideki nesne sayısı, komut dizesinde tanımlanan en yüksek sayıdan küçükse, bir özel durum oluşturulur.

Dizi, komut dizesinde başvurulmayan nesneler içeriyorsa, hiçbir özel durum oluşturulur.

Bir parametre null ise, parametresine DBNull.Valuedönüştürülür.

Döndürülenler

IEnumerable<TResult>

Sorgu tarafından döndürülen nesne koleksiyonu.

Örnekler

Aşağıdaki örnekte bu yöntem için tek bir kullanım gösterilmektedir:

var customers = db.ExecuteQuery<Customer>(@"SELECT CustomerID, CompanyName, ContactName, ContactTitle,
   Address, City, Region, PostalCode, Country, Phone, Fax
   FROM   dbo.Customers
   WHERE  City = {0}", "London");

foreach (Customer c in customers)
    Console.WriteLine(c.ContactName);
Dim customers = db.ExecuteQuery(Of Customer)("SELECT CustomerID, _
    CompanyName, ContactName, ContactTitle, _
   Address, City, Region, PostalCode, Country, Phone, Fax _
   FROM dbo.Customers _
WHERE City = {0}", "London")

For Each c As Customer In customers
    Console.WriteLine(c.ContactName)
Next

Açıklamalar

Bu yöntem, LINQ to SQL'in belirli bir senaryo için sağlamadığı durumlar için geçiş mekanizmasıdır.

Sorgunun sonucundaki sütunları nesnedeki alan ve özelliklerle eşleştirme algoritması aşağıdaki gibi çalışır:

  • Bir alan veya özellik belirli bir sütun adıyla eşlenmişse, sonuç kümesinde bu sütun adı beklenir.

  • Bir alan veya özellik eşlenmemişse, sonuç kümesinde alan veya özellik ile aynı ada sahip bir sütun beklenir.

  • Karşılaştırma, önce büyük/küçük harfe duyarlı eşleşme aranarak gerçekleştirilir. Böyle bir eşleşme bulunamazsa, büyük/küçük harfe duyarlı olmayan eşleşme için sonraki bir arama yapılır.

  • Sorgu, aşağıdakilerin tümü doğru olduğunda nesnenin tüm izlenen alanlarını ve özelliklerini (ertelenen yüklemeden başka) döndürmelidir:

    • açıkça tarafından <T>izlenen bir varlıksaDataContext.

    • ObjectTrackingEnabled true.

    • Varlığın birincil anahtarı vardır.

    Aksi takdirde bir özel durum oluşturulur.

  • Diğer tüm durumlarda sorgu, nesnenin izlenen alanlarının ve özelliklerinin yalnızca bir alt kümesini alabilir.

Şunlara uygulanır