2011-05-10 19 views
5

SQL ve aşağıdaki ifadeyi kullanılan: Doğru görüş ProjectRouteEmails üç ayrı e-postalar döndüFarklı sonuçlar ilk projemde LINQ to SQL kullanıyordum

var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails 
      .Where(p => p.ProjectID == ProjectID); 

. E-postalar tablosundan döndürülen kimlikler 117, 591 ve 610'du.

LINQ ile Varlıklar arasında değiştim ve aynı görünümü ve aynı LINQ deyimini kullanıyorum, ancak üç kaydı geri aldığım halde, bu ilk kayıttır ID 117, üç kere geri dönüyor.

böyle LINQ statment yazma çalıştı:

var ProjectRouteEmails = from p in EmailManagerDAL.Context.ProjectRouteEmails 
           where p.ProjectID == ProjectID 
           select p; 

ama hiç fark yarattı; Aynı kayıt üç kez geri döndü.

Ben SQL Server Management Studio girdi ve sorgu ran:

select * from ProjectRouteEmails (nolock) 
where ProjectID = 12 

ve doğru üç benzersiz kayıtlar döndü.

Burada neler oluyor?

Teşekkürler!

+0

Çıktı almak için bu işlemin nasıl yapıldığını iki kez kontrol edebilirim ... sesler – hunter

+0

Yalnızca bir Kılavuza bağlıyorum. Ayrıca bir breakpoint setim var ve watch penceresinde incelemek aynı sonuçları gösteriyor. – user390480

cevap

5

Varlık Veri Modeli'nde varlık anahtarının ProjectRouteEmail'ler için doğru şekilde ayarlandığından emin olun. Görüntüyü modele içe aktardığınızda bazen varlık anahtarları dağılır.

+0

İlginç ... spesifikasyonlar veya daha fazla ayrıntı sağlayabilir misiniz? Varlık nesnesinde mi? Ya da ... bazı ilişkisel meta veriler? Bazıları, somun ve civataları kazmadan varlık veri modelini oluşturmak için araçları kullanabilir. – IAbstract

+0

BU OLDU !!!! Teşekkürler Aducci! Varlık anahtarı olarak bir metin alanı keyfi olarak seçilmiştir. Doğru alana değiştirdim ve işe yarıyor. Teşekkür ederim! – user390480

+2

Sadece diğerleri için gelecek referans için. Edmx'i açın, ardından görünümünüzü sağ tıklayın ve varlık anahtarını ekleyin. – causita