Aracılığıyla paylaş


Tür ilişkileri LINQ sorgu işlemlerinde (C#)

Verimli sorguları yazmak için nasıl tam sorgu işlemi tüm değişken türleri, birbirleri ile anlamanız gerekir.Bu ilişkiler anlarsanız, size daha kolay kavrama LINQ belgelerinde örnek kod.Üstelik değişkenleri kullanarak örtük olarak yazılan ne olacağı planda tanıdığı var.

LINQsorgu işlemleri veri kaynağına sorgu ve sorgu yürütme mutlaka yazılmalıdır.Sorgu değişken türü veri kaynağındaki öğe türünü ve yineleme değişkeni türü ile uyumlu foreach ifadesi.Bu güçlü yazarak kullanıcılar bunları karşılaşma olasılığına ne zaman bunlar düzeltilebilir derleme zamanında tür hatalarının yakalanır güvence altına alır.

Bu tür ilişkileri göstermek için örnekler çoğu açık yazmak için tüm değişkenleri kullanın.Son örnek bile örtülü kullanarak yazmaya kullandığınızda aynı ilkelere nasıl uygulayacağınıza gösterir var.

Kaynak verileri dönüştürmek değil sorguları

Aşağıdaki resimde gösterildiği bir LINQ nesnelere sorgu verilerini hiçbir dönüşümleri gerçekleştiren işlemi.Kaynak dizeleri dizisi içerir ve sorgu çıktısı da dizeler dizisidir.

LINQ sorgusunda veri türlerinin ilişkisi

  1. Veri kaynağı türü bağımsız değişkeni aralık değişken türünü belirler.

  2. Seçilen nesnenin türü sorgu değişken türünü belirler.Burada name bir dizedir.Bu nedenle, sorgu değişkeni, bir IEnumerable<string>.

  3. İçinde üzerinden sorgu değişkenine iterated foreach ifadesi.Sorgu değişken dizeler dizisi olduğu için değişkeni de bir dizedir.

Kaynak verileri sorgular

Aşağıdaki resimde gösterildiği bir LINQ to SQL sorgu verileri basit bir dönüşümü gerçekleştiren işlemi.Sorgu bir dizi alır Customer nesne giriş olarak ve yalnızca seçer Name özelliği sonuç.Çünkü Name bir dize dize dizisi çıktı olarak bir sorgu oluşturur.

Veri türünü dönüştüren sorgu

  1. Veri kaynağı türü bağımsız değişkeni aralık değişken türünü belirler.

  2. select Deyiminin döndüreceği Name tam yerine Customer nesne.Çünkü Name tür bağımsız değişkeni, dize custNameQuery olan stringyerine Customer.

  3. Çünkü custNameQuery , dizeler dizisidir foreach döngünün yineleme değişkeni olması da bir string.

Biraz daha karmaşık bir dönüştürme aşağıda gösterilmiştir.select Deyimi döndürür özgün yalnızca iki üyesi yakalayan bir anonim tür Customer nesne.

Veri türünü dönüştüren sorgu

  1. Tür bağımsız değişkeni veri kaynağının her zaman aralığı değişken sorgu türüdür.

  2. Çünkü select üreten bir anonim tür deyimi, sorgu değişkeni kullanarak örtük olarak yazılmalıdır var.

  3. Sorgu değişken türüne örtülü, çünkü yineleme değişkeni foreach döngü de örtülü olmalıdır.

Tür bilgileri gerçekleştirip derleyici belirlemesine izin verme

Sorgu işlemi türü ilişkileri anlamanız gerekir, ancak tüm işleri sizin yerinize yapar derleyici bildirmek için seçeneğiniz vardır.Anahtar sözcük var herhangi bir yerel değişken sorgu işlemi için kullanılabilir.Aşağıdaki resimde, yukarıda açıklanan örnek sayıyı 2 tam olarak eşdeğerdir.Tek fark, derleyici query işlemi her değişken için güçlü türü kullanacaksınız şöyledir:

Örtülü yazma ile yazı akışı

var hakkında daha fazla bilgi için, bkz. Yerel değişkenler örtülü olarak yazılı (c Programlama Kılavuzu #).

Ayrıca bkz.

Kavramlar

Tür ilişkileri sorgu işlemlerinde (Visual Basic)

Diğer Kaynaklar

C# [NULL]'taki LINQ ile çalışmaya başlama