簡體   English   中英

實體框架。 無法檢索數據

[英]Entity Framework. Cannot retrieve data

我遇到了非常奇怪的行為,我真的不知道這可能與什么有關。 我試圖通過兩種方式檢索數據:純LINQ和存儲過程,但是數據不會返回。 沒有錯誤或異常。 在SQL Server方面,我可以從分析器中看到已執行存儲過程。

public async Task<IEnumerable<OrdersDto>> GetAll(int userid)
{
    OrdersDto[] result;
    try
    {
        SqlParameter param = new SqlParameter("@UserId", userid);
        result = await _db.Database.SqlQuery<OrdersDto>("UserOrders @UserId", param).ToArrayAsync();
        //var result = await _db.Order.Where(x=> x.CustomerId == 1)
        //    .Include(x => x.OrderDetails)
        //    .Include(x => x.OrderStatus)
        //    .Include(x => x.PaymentStatus)
        //    .AsNoTracking().ToArrayAsync();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
    return result;
} 

當您達到await狀態時,線程將返回給調用方。 當您檢查await結果時,因為您沒有等待任務完成,所以沒有得到結果。 如果您同步運行查詢,則可以看到所需的結果:

result = _db.Database.SqlQuery<OrdersDto>("UserOrders @UserId", param).ToArray();

異步運行此代碼沒有問題,但是僅應在任務完成時檢查結果:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM