2013-12-18 16 views
6

Veritabanından verileri Denetleyicideki bir listeye göndermekte sorun yaşıyorum. C# ve MVC için yeniyim, bu yüzden herhangi bir yardım yararlı olacaktır! Kod'System.Linq.IQueryable <int>' türünü 'int' türüne dönüştüremiyor

public static List<FilterTree> GetAllUsers() 
    { 
     FilterTreeDBContext db = new FilterTreeDBContext(); 
     var userList = new List<FilterTree>(); 
     var device = new FilterTree(); 
     //This is the line where I get the error 
     device.ID = from a in db.FilterTree select a.ID; 

     userList.Add(device); 
     return userList; 
    } 

Teşekkür & İyi Tatiller izler !! :)

+0

Sorun nedir? – Max

+0

FilterTree sizin dbset'iniz. Yani sorgunuzdan tamsayıların listesini alıyorsunuz. FilterTree'de örnek değişken kimliğinin türü nedir? Sanırım aldığın hatadan anlaşılıyor. Bir alana (Iolble ) bir int alanı kaydetmeye çalışıyorsunuz. Umarım bu analiz probleminizi çözmenize yardımcı olur. – AbhinavRanjan

+0

Açıklama için @AbhinavRanjan teşekkürler! – Cristian

cevap

12
device.ID = (from a in db.FilterTree select a.ID).First(); 

Linq sorgusu tembel olduğunu ve

BTW aksi takdirde sızıntı olacaktır, bağlam kapatmak için unuttum yoktur bağlantıları

using (var db = new FilterTreeDBContext()) 
{ 
    ... 
    return userList; 
} 
+0

Teşekkürler ... işte :) – Cristian

+2

@ Mihai-CristianRotariu, bu durumda, zaman geçtiğinde cevap olarak kabul ettiğinizden emin olun. –

2

Bildiğim kadarıyla değeri isteğinde sonra çalıştırdığı çerçeveler gibi, sorgunun birden fazla nesneyi olabileceğini bilir, bu yüzden şu şekilde kullanın:

device.ID = (from a in db.FilterTree select a.ID).FirstOrDefault(); 
İlgili konular