2010-08-04 24 views

cevap

44

aşağıdakilerden birini yapabilirsiniz, bir listeye IQuerable veya IEnumerable dönüştürmek için:

IQueryable<object> q = ...; 
List<object> l = q.ToList(); 

ya: Sen var resultV ile IList<DzieckoAndOpiekun> resultV yerini alabilir

IQueryable<object> q = ...; 
List<object> l = new List<object>(q); 
+1

İdeal çözüm, Tnx !! :) – netmajor

+0

Elbette '.ToArray()' Linq uzantısı da bu durumda kullanılabilir (çünkü bir 'T []' bir 'IList ' da olduğu gibi). Ama 'AddRange' yöntemi aslında ne gerektirir? Belki sadece 'var' kullanabilirdi (ki burada 'IQueryable ' burada) ve 'AddRange' bundan memnun olur? Not: 'IQueryable <>' IEnumerable <> 'devralır. –

3

bu deneyin ->

new DzieckoAndOpiekun(
         p.Imie, 
         p.Nazwisko, 
         p.Opiekun.Imie, 
         p.Opiekun.Nazwisko).ToList() 
+0

.ToList() db ben den kayıtların listede EF benim sorunu bu şekilde çözüldü kadarıyla i sökünüz kullanıyorum if (2) yerine. 'WcfService1.DzieckoAndOpiekun' 'ToList' için bir tanım içermiyor ve 'WcfService1.DzieckoAndOpiekun' türünde bir ilk argümanı kabul eden 'ToList' uzantı yöntemi bulunamıyordu hata – manny

2

Sen linq sorgusu sonra, aşağıda gösterildiği gibi IQueryable sonucu, bir IList döndü dönüştürmek için .ToList() yöntemi kullanabilirsiniz.

public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname) 
{ 
    DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities(); 
    DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection(); 
    if (firstname == null && lastname != null) 
    { 
     IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko 
         where lastname == p.Nazwisko 
         **select** new DzieckoAndOpiekun(
        p.Imie, 
        p.Nazwisko, 
        p.Opiekun.Imie, 
        p.Opiekun.Nazwisko).ToList() 
        ; 
     result.AddRange(resultV); 
    } 
    return result; 
} 
+0

(Bir kullanma yönergesi veya bir montaj referansı eksik misiniz?) – netmajor

10

.

+3

Bu, diğerlerinden çok daha iyi bir yanıttır. Özellikle 'AddRange() 'IEnumerable ' (ki kesinlikle bunu kesinlikle yapar ...) kabul ederse –

+0

Mükemmel, süper basit. Teşekkür ederim! –

3

Bir where cümlesi kullanıyorsanız, IQueryable nesnesini istemiyorsanız, .First()'u eklediğinizden emin olun.

+0

teşekkürler bu, benzer bir sorunla yaşadım – mgrenier

1

düzgün çalışması

ListOfObjectToBeOrder.OrderBy(x => x.columnName).ToList();