このクエリに似た何かを実行するために、これら 2 つのクラスでコード ファースト ナビゲーション プロパティを定義する方法を見つけようとしています。
SELECT USERID, FIRSTNAME, LASTNAME, COURSEID, NAME
FROM User
LEFT OUTER JOIN Course ON User.USERID = Course.USERID
WHERE COURSEID = 1
そのため、特定のコースに参加したことがあるかどうかと一緒に、ユーザーのリストを見つけようとしています。
public class User
{
public int UserId {get;set; }
public string FirstName {get;set;}
public string LastName {get;set;}
public virtual ICollection<Course> Courses { get; set; }
}
public class Course
{
public int CourseId { get;set; }
public int UserId { get;set; }
public string Name { get;set; }
public virtual User User {get;set;}
}
これを達成するためにクエリを書くとしたら
var u = Users.Where(x => x.Courses.Any(x => x.CourseId = 1));
これはサブクエリを実行しますが、これは私が望んでいたものではありません (コースに参加しなかった人は表示されないため)。
ナビゲーション プロパティはどのように定義されますか?
HasMany(t => t.Courses).WithOptional(t => t.User).HasForeignKey(t => t.UserId);