Collections.Generic.IEnumerable<AnonymousType#1> Hatası

Kodla Büyü

togius

Süper Üye
Süper Üye
Mesajlar
1,726
Aşağıdaki gibi listelerimiz olsun.

Kod:
public class Personeller
{
    public int PersonelId { get; set; }
    public string AdSoyad { get; set; }
    public string CepTel { get; set; }
    public string Email { get; set; }
    public int KurumdakiGorevId { get; set; }
    public int KurumId { get; set; }
    public int KidemYili { get; set; }
    public string Sifre { get; set; }
}


public class Kurumlar
{
    public int KurumId { get; set; }
    public string Kurum { get; set; }
}


public class KurumGorevleri
{
    public int GorevId { get; set; }
    public string Gorev { get; set; }
}

public class DetayPersoneller
{
    public int PersonelId { get; set; }
    public string AdSoyad { get; set; }
    public string CepTel { get; set; }
    public string Email { get; set; }
    public int KurumdakiGorevId { get; set; }
    public int KurumId { get; set; }
    public int KidemYili { get; set; }
    public string Sifre { get; set; }
    public string Kurum { get; set; }
    public string Gorev { get; set; }
}

Biz join işlemleri ile listelerimizi bu şekilde ilişkilendiriğimizi düşünelim

Kod:
List<KurumGorevleri> KurumGorevleriListesi = veritabani_islemleri.SelectKurumGorevleri(-1);
        List<Kurumlar> KurumListesi = veritabani_islemleri.SelectKurumlar(-1);
        List<Personeller> PersonelListesi = veritabani_islemleri.SelectPersoneller(-1);

        List<DetayPersoneller> veriler = (from p in PersonelListesi
                                          join kl in KurumListesi on p.KurumId equals kl.KurumId
                                          join kg in KurumGorevleriListesi on p.KurumdakiGorevId equals kg.GorevId
                                          select new DetayPersoneller
                                          {
                                              PersonelId = p.PersonelId,
                                              AdSoyad = p.AdSoyad,
                                              CepTel = p.CepTel,
                                              Email = p.Email,
                                              KurumdakiGorevId = p.KurumdakiGorevId,
                                              KurumId = p.KurumId,
                                              KidemYili = p.KidemYili,
                                              Sifre = p.Sifre,
                                              Kurum = kl.Kurum,
                                              Gorev = kg.Gorev
                                          }).ToList();

Bunu bu şekilde yaptığımızda
System.Collections.Generic.IEnumerable<AnonymousType#1>' does not contain a definition for 'ToList' and the best extension method overload 'System.Linq.Enumerable.ToList<TSource>(System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments

Hatasını alacağız maalesef.

ToList() ifadesini .ToList<DetayPersoneller>() şekline çevirsekte aynı hatayı alırız. Çözüm aslında gerçekten basit

Kod:
List<KurumGorevleri> KurumGorevleriListesi = veritabani_islemleri.SelectKurumGorevleri(-1);
        List<Kurumlar> KurumListesi = veritabani_islemleri.SelectKurumlar(-1);
        List<Personeller> PersonelListesi = veritabani_islemleri.SelectPersoneller(-1);

        List<DetayPersoneller> veriler = (from p in PersonelListesi
                                          join kl in KurumListesi on p.KurumId equals kl.KurumId
                                          join kg in KurumGorevleriListesi on p.KurumdakiGorevId equals kg.GorevId
                                          select new DetayPersoneller
                                          {
                                              PersonelId = p.PersonelId,
                                              AdSoyad = p.AdSoyad,
                                              CepTel = p.CepTel,
                                              Email = p.Email,
                                              KurumdakiGorevId = p.KurumdakiGorevId,
                                              KurumId = p.KurumId,
                                              KidemYili = p.KidemYili,
                                              Sifre = p.Sifre,
                                              Kurum = kl.Kurum,
                                              Gorev = kg.Gorev
                                          }).ToList();

select new DetayPersoneller ifadesi işte bizim çözüm kaynağımız. DetayPersoneller ile oluşacak listemizin tipini baştan belirliyoruz.
 
Geri
Üst