- Mesajlar
- 1,737
Aşağıdaki gibi listelerimiz olsun.
Biz join işlemleri ile listelerimizi bu şekilde ilişkilendiriğimizi düşünelim
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
select new DetayPersoneller ifadesi işte bizim çözüm kaynağımız. DetayPersoneller ile oluşacak listemizin tipini baştan belirliyoruz.
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.