SORU
17 Aralık 2008, ÇARŞAMBA


Nasıl tek, birden çok alanda katılın katılır mı bu SERİ içinde

Bir veya daha fazla bağımsız değişkeni olarak . birleşim, LİNQ2DataSet bir sorgu yapmak istiyorum

var result = from x in entity
join y in entity2 
       on x.field1 = y.field1 
and 
          x.field2 = y.field2

Ben henüz bulmuş bir uygun çözüm (ilave edebilirim, ekstra kısıtlamalar için bir where yan tümcesi, ama bu çok uzak bir uygun çözüm, ya da kullanmak this çözüm, ama varsayar bir equijoin).

Olası bir SERİ tek bir birleştirme birden çok alanda katılmak için mi?

EDİT

var result = from x in entity
             join y in entity2
             on new { x.field1, x.field2 } equals new { y.field1, y.field2 }

çözüm yukarıda bir equijoin farz olarak değinmiştim.

Daha fazlaEDİT

Benim orijinal örnek bir equijoin bu eleştirileri cevaplamak için, Benim şu anki ihtiyacına equijoin için olduğunu kabul ediyorum ve zaten ben yukarıda başvurulan çözüm başvurdum.

Ancak / var olasılıklar ve en iyi uygulamaları ile istihdam ETMENİZ gerektiğini anlamaya çalışıyorum. Gideceğim yer ihtiyacı için bir Tarih aralığı Sorgu ile bir tablo KİMLİĞİ yakında, ve sadece önceden öngörerek bu sorun, göründüğü gibi yapacağım Ekle tarih aralığı, where yan tümce.

Her zaman olduğu gibi öneri ve yorumlarınızı verdiği için teşekkürler

CEVAP
17 Aralık 2008, ÇARŞAMBA


Anonim tip ile çözüm iyi çalışması gerekir. SERİolabilirsadece equijoins (katılmak maddeleri, neyse) temsil eder, ve gerçekten de bu zaten orijinal sorguya dayalı ifade etmek istediğini söyledin.

Eğer bazı özel nedenle anonim türüyle sürümü beğenmedin mi yoksa, o nedenle açıklamak gerekir.

Eğer bir şey özgün istedi ne başka yapmak istiyorsanız, lütfen bir örnek veringerçektenyapmak istiyorum.

EDİT: söz konusu düzenleme cevap: "Aralık", tümcesi yerine. nerede kullanmanız gerekiyor üyelik tarihi evet, bir yapmak için Gönderilmesinin eşdeğer gerçekten onlar, sadece mevcut optimizasyon meselesi. Equijoins sağlamak basit optimizasyonu (SERİ Nesneleri içeren SERİ Veri Kümelerini) oluşturarak bir arama dayalı iç sekans olarak düşün bir karma tablosu anahtar için bir sıra girdileri eşleştirme anahtarı.

Tarih bunu aralıkları biraz daha zor. Ancak, "tarih" bir şeyler yapmak mümkün olabilir . Aralık birleşim ne demek istediğini tam olarak bağlı ^em>benzer- eğer planlama oluşturmak için "gruplar" tarihleri (örneğin bir yılda) gibi iki girişi olan kadınlarda aynı yıl (ama aynı tarih) gereken maç, o zaman yapabilirsin sadece kullanarak bu bant gibi anahtar. Eğer daha karmaşık, örneğin bir tarafın katılın sağlar bir yelpazede, ve diğer tarafına katılmak sağlar tek bir tarih, eşleşen düşerse içinde bu dizi olur, daha iyi ele sahip where maddesinin (sonra ikinci from fıkra) IMO. Sen bazı funky özellikle büyü ile sipariş taraftan birini bulmak maçlar daha verimli, ama bir sürü iş istiyorum sadece bu tür şeylere sonra kontrol edip performans sorunu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009