私はcompanyContextというコンテキストを持っています。 3つのテーブルレポート、ログ、従業員があります。私はケースIDを与えられています。特定のケースに属しているすべての従業員のリストを取得する必要があります(ログがある場合はログがありますが、まだ)。だから私は、EmployeeIDがEmployee.IDと等しいところにあるすべての従業員を照会しました。そこでは、Reports CaseIDはcase.idになります。しかし、そのリストを表示していない、Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable}]クエリ結果を反復するエラー
私は正しくクエリを作っていますか?みんなありがとう。
var employees = await context.Reports.Include(s => s.Employee)
.ThenInclude(e => e.ID)
.AsNoTracking()
.Where(r => r.CaseID == Case.Id);
モデル
public class Log
{
public int ID { get; set; }
public string Input { get; set; }
public string Tag { get; set; }
public DateTime LogDate { get; set; }
public ICollection<Report> Reports { get; set; }
}
public class Employee
{
public int ID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public ICollection<Report> Reports { get; set; }
}
public class Report
{
public int ID { get; set; }
public string CaseID { get; set; }
public int EmployeeD { get; set; }
public int? LogID { get; set; }
public Employee Employee { get; set; }
public Log Log { get; set; }
}
そうしないと、クエリが同期的に実行され、他のリクエストのスレッドがブロックされます。一般的に、LINQクエリを作成すると、結果を要求するまで(つまり 'SingleOrDefault()'、 'FirstOrDefault()'、 'ToList()'、foreach内の 'IQueryable 'ループ(注意、同期的に実行する –
Tseng