2013-05-19 10 views

Odpowiedz

7

Co z funkcją SingleAsync lub FindAsync? Nie wiesz o FirstOrDefault jeden

Nie używać.

var findBarCode = await context.Barcodes 
     .Where(x => x.Code == barcode) 
     .SingleAsync(x => x.Product); 

Innym sposobem (może głupie jak ja nie mają dostępu do VS obecnie):

var findBarCode = await context.Barcodes 
      .Where(x => x.Code == barcode) 
      .OrderBy(YOURCRITERIA) 
      .Take(1) 
      .Select(x => x.Product) 
      .ToListAsync(); 
+2

Istnieje 'FirstOrDefaultAsync' i' FirstAsync'. –

+2

Te metody są ukryte w 'System.Data.Entity', więc możesz nie widzieć ich od razu w Intellisense. – MEMark

+0

Btw ta przestrzeń nazw znajduje się w zespole 'EntityFramework', więc będziesz musiał dodać odwołanie do niego w twoim projekcie, zanim będziesz mógł użyć' System.Data.Entity' – Sergey

9

Jest to metoda rozszerzenie nazywa FirstOrDefaultAsync w System.Data.Entity:

using System.Data.Entity; 
... 
var findBarCode = await context.Barcodes 
    .Where(x => x.Code == barcode) 
    .Select(x => x.Product).FirstOrDefaultAsync(); 

Ten requires Entity Framework 6.0.