2011-08-31 27 views
8

İlk kez Entity Framework'ü kullanıyorum ve bazı kafa karıştırıcı sonuçlar elde ediyorum. Ben bu SQL sorgusu çalıştırdığınızda, belirli bir tablo 3 ayrı satır içerir biliyorum: Ben ancak framework karşı bu sorguyu çalıştırdığınızdaVarlık çerçeve sorgusu aynı satırı birden çok kez döndürür

SELECT * FROM mytable WHERE service_month = 201012 

, ben 3 satır olsun, ama onlar ilk satırın tüm kopyalar (VB sözdizimi vardır).

Dim temp = _context.mytable.Where(Function(x) x.service_month = 201012) 

Yanlış bir şey mi kurdum? Bu, SQL'e LINQ ile böyle yaparım, bu yüzden bir şeyleri kaçırdığımı hissediyorum.

+0

Bundan sonra değerleri kontrol etmek için 'temp' ile ne yapıyorsunuz? –

cevap

18

Birincil anahtar tanımınızı EDMX'inizde düzeltin. (Tablonuzda PK yoksa, bir tane ekleyin.) Tüm satırlar aynı "anahtar" değerini döndürdüğünde, EF aynı nesne örneğini döndürür.

+1

Bingo. Bir başkasının kurduğu raporlama tablolarını kullanıyorum ve birincil anahtarı yoktu. Teşekkürler. – gfrizzle

+6

Geliştiriciler bunu bir özellik olarak adlandırsalar bile, buna bir hata diyorum. Çözüm için çok teşekkürler. – Chris

+0

Teşekkürler @Craig. Sadece şimdi üzerinde çalıştığım tablonun birincil anahtarı olmadığını öğrendim. –

İlgili konular