2011-05-07 20 views
7

MVC ve Entity Framework kullanıyorum. Aşağıdaki kod ile model klasörümde bir sınıf oluşturdum. Yukarıdaki hata mesajını her iki sorguda da almaya devam ediyorum. Ben sayıl olmayan değişkenlere referansta üzerinde bilinen bir sorun olduğunu biliyorum ama bir çözüm nasıl uygulanacağı emin değilim: Sen linq-to-kuruluşlar sorguda m.CheckedOut.Equals(1) kullanamaz'System.Object' türünde sabit bir değer oluşturulamıyor. Bu bağlamda yalnızca ilkel türler ('Int32, String ve Guid' gibi) desteklenir.

http://msdn.microsoft.com/en-us/library/bb896317.aspx#Y1442

private MovieLibraryDBEntities movieLibraryDBEntitiesContext; 

public int getNumberOfEntriesReserved() 
{ 
    return (from m in movieLibraryDBEntitiesContext.Movies 
      where m.CheckedOut.Equals(1) 
      select m).Count(); 

    //return movieLibraryDBEntitiesContext.Movies 
    // .Where(e => e.CheckedOut.Equals(1)) 
    // .Select (e => e.Title).Count(); 
} 
+0

'CheckedOut' nedir? –

cevap

12

. m.CheckedOut == 1 kullanın, ancak CheckedOut, integer olmalıdır.

+0

Teşekkürler! Bu aslında SQL Server'da biraz alan olduğundan, bunun yerine bunu kullandı ve işe yaradı: (m.CheckedOut == true) – user743183

+0

eşittir, varlıklar için linq içinde iyi çalışır. Ben her zaman kullanırım. Örneğin. '.Where (r => r.EmployeeName.Equals (çalışanAdı, StringComparison.InvariantCultureIgnoreCase)) – deltree

+0

Teşekkür ederim. Hata mesajıyla bulmak neredeyse imkansız olan şeylerden biridir. – JonathanPeel

1
Any() i benim bana

int fıkra, ilkel türleri üzerinde arama yapmak için bu nedenle bu

where order.User == user 

bu

where order.User.UserId == user.UserId 

bir yoktur hale değiştirmek zorunda kullanarak

aynı sorun Quirk'i açıklayan blog post.

3

Bu daha eski bir sorudur. IQueryable arabirimini kullanarak bir null sütunu filtrelemeye çalışırken aynı sorun vardı. İlk önce nesneyi bir değere sahip olup olmadığını kontrol edip değeri kontrol ederek sorunu çözdüm.

widgets = widgets.Where(x => x.ID.HasValue.Equals(true) && x.ID.Value.Equals(widgetID)); 
İlgili konular