Dot-Net

Entity Framework 6 - 如何將此行轉換為非同步?

  • May 19, 2013

我想知道如何將此語句更改為非同步?

   var findBarCode = context.Barcodes
       .Where(x => x.Code == barcode)
       .Select(x => x.Product).FirstOrDefault();

我沒有看到任何async where我可以使用的陳述。

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();

FirstOrDefaultAsync有一個擴展方法呼叫System.Data.Entity

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

需要 Entity Framework 6.0

引用自:https://stackoverflow.com/questions/16638569