Aracılığıyla paylaş


DataContext.ExecuteQuery Yöntem

Tanım

Aşırı Yüklemeler

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ü.

Sorgu 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 bir 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 değeridir.

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. Aşağıdaki davranışa dikkat edin:

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, değerine dönüştürülür DBNull.Value.

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. Aşağıdaki davranışa dikkat edin:

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, değerine dönüştürülür DBNull.Value.

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 belirli bir senaryo için sağlamadığı durumlar için bir geçiş mekanizmasıdır.

Sorgunun sonucundaki sütunları nesnedeki alanlara ve özelliklere 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 bir 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 (ertelenmiş yükleme konusu dışında) döndürmelidir:

    • varlığı tarafından açıkça izleniyorsa <T>DataContext.

    • 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