次のデータモデルがあります。
public class Course
{
public int CourseId { get; set; }
public int StateId { get; set; }
}
public class CompletedCourse
{
public int CompletedCourseId { get; set; }
public int UserId { get; set; }
public Course Course { get; set; }
public string LicenseNumber { get; set; }
}
public class License
{
public int LicenseId { get; set; }
public int UserId { get; set; }
public int StateId { get; set; }
public string LicenseNumber { get; set; }
}
IQueryable
forを考え出そうとしていますが、Licenses テーブルから選択したプロパティCompletedCourses
を入力CompletedCourse.LicenseNumber
して、完了したコース レコードと一致させたいと考えています。LicenseNumber
FirstOrDefault()
UserId
StateId
これが私の質問ですが、これでは重複したライセンスが正しく処理されないと思います:
var entries =
(from course in context.CompletedCourses
join license in context.Licenses on course.UserId equals license.UserId
where license.StateId == course.Course.StateId
select course)
.Include(x => x.Agent)
.Include(x => x.Course.State);
これは単一のクエリで実行できるものですか? 前もって感謝します。