2009-12-08 29 views
5

Bir çalışan için tüm devamsızlıkları döndüren bir LINQ sorgum var. Linq ifadesinin ilk kısmı, çalışanların ayrıntılarının temel bir listesini alır, ancak o yokluğa ilişkin IQueryable hastalıklarını da iade ederim.IQueryable <object> parametresinin virgülle ayrılmış dizgeye dönüştürülmesi

Bir şekilde IQueryable listesinin virgülle ayrılmış bir Hastalıklar listesi haline dönüştürülmesini istiyorum.

Şu anda (Majorly soyunmuş) kullanın: listesini döndürür

DetailsOfSickness = (
    from t2 in Illnesses 
    join ai1 in AbsenceIllnesses on t2.IllnessID equals ai1.IllnessID 
    select new { Illness = ", " + t2.IllnessName }) 

fakat bunun sonuçlarının gösterilmesini istediğiniz: vb Baş ağrısı, grip, Kramplar .... Herhangi bir fikir?

cevap

7

Virgülle ayrılmış dizgeni oluşturmak için String.Join kullanabilirsiniz. Böyle

string DetailsOfSickness = 
    String.Join(", ", (
     from t2 in illnesses 
     join ai1 in absenceIllnesses on t2.IllnessID equals ai1.IllnessID 
     select t2.IllnessName).ToArray()); 
+0

Harika Rubens, teşekkürler. – Fermin

+0

Sadece bir not, bu LINQ varlık varlıkları ile çalışmayacak. – Ecyrb

+0

@Ecyrb, neden olmasın? Denemedim, ama .ToArray() yöntemini eklediğimde, veritabanı değerlerinizi almalı ve daha sonra bunları String1 parametresi olarak kullanmalısınız. –

3

şey yapmalı:

DetailsOfSickness = String.Join(", ", (
    from t2 in Illnesses 
    join ai1 in AbsenceIllnesses on t2.IllnessID equals ai1.IllnessID 
    select t2.IllnessName).ToArray()); 
  • farkında olmayan derleyici olmayan test kod olun.
+0

Temel olarak kastermester yazdım ama Rubens ilk ! Teşekkürler – Fermin

+0

Sadece bir not, bu Entiteler LINQ ile çalışmayacak. – Ecyrb

İlgili konular