olmadan Bul kullanarak dbSet rekor bulun:Bir kullanıcıların tablo var birincil anahtar
Users:
+ID
+Username
+...
Bir kullanıcıları yüzgeç myDBContext.Users.Find(Username)
kullanmak istiyorum. Şu anki bağlamımda kimliğini kullanamam.
Tam bir LINQ sorgusu kullanmalı mıyım? Örneğin.
var user = from users in myDBContext.Users.Find(Username)
where users.Username == username
select users
Ben de EDMX birincil anahtar olarak adını tanımlamak için çalıştık ama bu şu hata ile sonuçlandı
: buldum
Properties referred by the Principal Role User must be exactly identical to the key of the EntityType CamelotShiftManagementModel.User referred to by the Principal Role in the relationship constraint for Relationship CamelotShiftManagementModel.AssociationUserFK1. Make sure all the key properties are specified in the Principal Role. C:\Code\CamelotShiftManagement\CamelotShiftManagement\Models\CamelotDB.edmx 278 11 CamelotShiftManagement
daha da iyisi! .. Teşekkürler. – Mortalus
Bunun yerine 'FirstOrDefault' kullanmak daha iyi olmaz mıydı? 'SingleOrDefault' yöntemini anladığımda, yalnızca bir kaydın bu koşulla eşleştiğinden emin olmak için * tüm * tabloya göz atacağıdır. OP'nin istediği şey bu olmayabilir. – Crono
@Crono Evet, performansının SingleOrDefault ile karşılaştırıldığını düşünürsek, FirstOrDefault için haklısınız. Ama burada beklenen sonuca bağlı olarak bence bu iki yöntem arasında seçim yapmalıyız. Yalnızca tek bir sonuç istiyorsanız ve birden fazla sıra varsa, bir istisna bekliyorsanız, SinleOrDefault kullanın aksi halde FirstOrDefault kullanın. Cevabımı bu bağlamda güncelleyeceğim. –