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

  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • J Medema

    J Medema

    11 EKİM 2006
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007