實體框架6 - 如何將此行轉換為異步?

.net async-await entity-framework entity-framework-6

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

    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)
        .SingleAsync(x => x.Product);

熱門答案

System.Data.Entity有一個名為FirstOrDefaultAsync的擴展方法:

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

需要Entity Framework 6.0




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因