public class UserBuilding
{
[Key, Column(Order = 0)]
public int UserId { get; set; }
[Key, Column(Order = 1)]
public int BuildingId { get; set; }
public int BuildingLevel { get; set; }
}
, ben yapardım aşağıdadır:Varlık çerçevesi: Kompozit anahtarlarla bir tablodan satır döndürme nasıl yapılır? Bir kullanıcıya ait tüm farklı binalar dönmek istiyorsa
database.UserBuildings.Where(b => b.UserId == userId);
Sorum Belirli bir kullanıcıya belirli bir binayı dönmek istiyorsa nedir? Bunu yapmanın en 'etkili' yolu ne olurdu?
database.UserBuildings.Where(b => b.UserId == userId && b.BuildingId == buildingId);
Bir çekicilik gibi çalışır teşekkür ederim! Bunun, algoritmanın hızı açısından "daha verimli" kabul edileceğini düşünüyor musunuz? – Deniz
@Deniz Veritabanını sorgulamadan önce bağlamda zaten var mı, bu nedenle evet, daha verimli –
@ Deniz: Varlık, aslında * daha fazla olabilir * varlık * yüklü değil (http://stackoverflow.com/ sorular/11686225/dbset-bulmak-yöntem-gülünç-yavaş-to-singleordefault-on-id karşılaştırıldığında). Başparmak kuralı: Belki de nesnenin halihazırda bağlamda olması durumunda 'Bul 'öğesini kullanın. Henüz yüklenmediğini veya çok düşük olduğunu biliyorsanız, sorunuzdaki sorguyu kullanın. – Slauma