2016-05-12 25 views
8

Foreach döngüsünde in işaret eden bir hata alıyorum !? Daha önce hiç olmamıştı. Bunun nedeni ne olabilir? Bir şey mi özledim?Foreach döngü hatası

Hata mesajı:

'System.NotSupportedException' EntityFramework.SqlServer.dll oluştu ancak kullanıcı kodu işlenmedi tür bir istisna


bilgiye : 'System.Object' türünde bir sabit değeri oluşturulamadı. Bu bağlamda yalnızca ilkel türler veya numaralandırma türleri desteklenir.

Kodum:

List<int> WeeksInProject = new List<int>(); 
var w = from x in db.Activities 
     where x.ProjectID.Equals(1) 
     select x; 

foreach (var wNum in w) 
{ 
    WeeksInProject.Add(wNum.WeekNumber); 
} 
+0

wNum.WeekNumber tür numarası değil –

+1

@ LinhTuan Hayır, bu bir INT nedir? –

+0

Bu sorun, eşittir sqq için linq desteklemiyor. Şu adresten okuyabilirsiniz: http://stackoverflow.com/questions/35511621/nhibernate-linq-doesnt-support-object-equals –

cevap

2
List<int> WeeksInProject = new List<int>(); 
var w = from x in db.Activities 
     where x.ProjectID != null && (int)x.ProjectID == 1 
     select x; 

foreach (var wNum in w) 
{ 
    WeeksInProject.Add(wNum.WeekNumber); 
} 

ProjectID bir int? olduğundan, boşluğu denetlemeniz ve sonra yayınlamanız gerekir.

+0

Sorun değil, işe yaradı! –

6
var w = from x in db.Activities 
     where x.ProjectID.Equals(1) select x; 

olmalıdır: ProjectIDint? olduğunu

var w = from x in db.Activities 
     where x.ProjectID == 1 select x; 

ise

var w = from x in db.Activities where 
     x.ProjectID.HasValue && 
     x.ProjectID.Value == 1 select x; 
+0

Cevabınız için teşekkürler, ancak yine de koddaki değişikliğe rağmen aynı sorunu yaşıyorum! Yanlış olabilecek başka bir şey var mı? –

+0

Hata mesajı (özellikle "ek bilgi"), '==' olarak değiştirildikten sonra hala aynı mı? – CherryDT

+0

Gecikme için özür dilerim! Evet, aynı. –