2009-01-26 34 views
15

Tercihlerim Var mı?LinqToSQL Seçin ve SeçMate - Katıl

Ben LINQPad kullanmak ve bir bölümünde var demek comments çünkü merak ediyorum nedeni:

// Note: before delving into this section, make sure you've read the preceding two 
// sections: Select and SelectMany. The Join operators are actually unnecessary 
// in LINQ to SQL, and the equivalent of SQL inner and outer joins is most easily 
// achieved in LINQ to SQL using Select/SelectMany and subqueries! 

bunu açıkça katıldı gösterir diğer bölümlerdeki, Henüz daha hızlı (en azından örnekler içindir LinqPad'de verilen) ve bana göre kafamda görselleştirmek daha kolay.

Belki de yalnızca kod örneklerini incelediğimden değil, kitaptan baktığım için yanlış anladım, ama diğer kişilerin de katılmasını seçtiklerini gördüm.

cevap

15

The Wayward Weblog, bu konuyla ilgili this to say numarasına sahipti. Birleştir, belirli bir tuşa katılmak için açık bir parametre kümesi kullanır ve sol ve sağ dış birleşimlere izin verir. SelectMany, genellikle bir iç birleştirmeyle veya çapraz birleştirmeyle sonuçlanan bir monadic bind gerçekleştirir. LINQ temel olarak .NET'te işlevsel programlamanın bir uygulaması olduğundan, SelectMany daha doğal bir ifadedir; Ancak, Katılmanın açık kurulumu büyük olasılıkla daha hızlı eylemlere neden olur.

Tercih ettiğim gibi, size en açık olan her ne olursa olsun en iyisi olduğunu düşünüyorum. C# version of 101 LINQ Samples, Katılma'yı içermez, ancak VB list, farklı senaryolarda kullanılan Katılma ve SeçmeMadını gösterir.

+0

Teşekkürler, iyi cevap ve bağlantı. Cevapsızlıklara bakılırsa, kullanılması gereken büyük bir farkın olmadığını varsayıyorum. – dtc