19

我想知道如何将此语句更改为异步?

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

我没有看到任何async where我可以使用的陈述。

4

2 回答 2

36

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

于 2016-10-07T10:46:39.237 回答
15

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();
于 2013-05-19T21:19:33.667 回答