SORU
27 NİSAN 2010, Salı


SERİ İlk vs Tek

SERİ:

Hiç sorgu dönecektir emin olduğum zaman First() Single() operatör kullanmak daha verimli olurtek bir kayıt?

Bir fark var mı?

CEVAP
27 NİSAN 2010, Salı


Eğer Tek bir kayıt bekliyorsanız, her zaman iyi kodunuzda açık olmak.

Diğer bir neden yazdım biliyorum, ama diğer yani zaman, yapmamanız göstermek istedim.

Benim kod, genellikle FirstOrDefault() SingleOrDefault() kullanırım ama bu farklı bir soru.

Al, örneğin, Bileşik bir Anahtar ile farklı dillerde ( İD, Lang) Müşteriler depolayan bir tablo

DBContext db = new DBContext();
Customer customer = db.Customers.Where( c=> c.ID == 5 ).First();

Bu kodu yukarıdaki mantık hatası yapmak kolay ( yakalamak zor olabilir ). Birden fazla kayıt ( birden fazla dilde müşteri kaydı varsayarsak ) ama her zaman sadece bazen çalışabilir birincisini...... ama diğerleri değil dönecektir.

Sen her zaman Customer Tek bir kullanım Tek dönmek istiyorum çünkü();

Aşağıda bir istisna bu durumda istediğiniz şeydir) atardı:

DBContext db = new DBContext();
Customer customer = db.Customers.Where( c=> c.ID == 5 ).Single();

O zaman, sadece alnına vur ve kendine... AYY demek! Dil alanı unuttum! Aşağıdaki doğru sürümü:

DBContext db = new DBContext();
Customer customer = db.Customers.Where( c=> c.ID == 5 && c.Lang == "en" ).Single();

İlk olarak, aşağıdaki senaryoda yararlıdır:

DBContext db = new DBContext();
NewsItem newsitem = db.NewsItems.OrderByDescending( n => n.AddedDate ).First();

BİR nesne olacak ve bir daha yeni bir sıralama elde etmek için kullanıyorsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • makemebad35

    makemebad35

    17 NİSAN 2006