下面我有以下代碼:異步方法與上下文處理
public Task<Service> GetSomething()
{
using (var myContext = new DbContext())
{
var returnObj = (from rp in myContext.Services1
join op in myContext.Services2 on rp .Id equals op.ServiceId into g
join ep in myContext.Services3 on rp .Id equals ep.ServiceId
from n in g.DefaultIfEmpty()
where rp.Name == code
select rp).FirstOrDefaultAsync();
return returnObj;
}
}
現在這個工作,我遇到錯誤:
The operation cannot be completed because the DbContext has been disposed.
看完後,看起來就像FirstOrDefaultAsync
是遞延執行和我需要首先將它轉換爲list
,以便它具體。
我要怎麼轉換這個查詢的結果,因爲我試過.ToListAsync()
但它沒有經過任何FirstOrDefault
了。
哪一行引發異常?你是否啓用了延遲加載?如果你做了@Yeldar Kurmangaliyev建議的更改,並且仍然處理異常,那麼我只能將延遲加載視爲原因。 –