2013-05-19 1 views

ответ

7

Как насчет SingleAsync или FindAsync? Не уверен, что FirstOrDefault один

Обязательно используйте.

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

Другой способ (может глупо, как у меня нет доступа к VS в настоящее время):

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

Существует «FirstOrDefaultAsync» и «FirstAsync». –

+2

Эти методы скрыты в 'System.Data.Entity', поэтому вы можете не видеть их сразу в Intellisense. – MEMark

+0

Btw это пространство имен находится в сборке 'EntityFramework', поэтому вам нужно будет добавить ссылку на него в вашем проекте, прежде чем вы сможете использовать' System.Data.Entity' – Sergey

9

Там же метод расширения называется FirstOrDefaultAsync в System.Data.Entity:

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

Это requires Entity Framework 6.0.