3
誰かが間違っている箇所を指摘できますか?コード最初のエンティティフレームワーク多対多の関係
多対多の関係を持つ2つの単純なクラスを作成しました。うまく動作、すべてのテーブルが正しく読み込まれます。私が試してみて、何も返されません任意の生徒のコースをretrive場合を除き...
public partial class Student
{
public Student()
{
Courses = new HashSet<Course>();
}
public int StudentID { get; set; }
[StringLength(50)]
[Required]
public string FirstName { get; set;}
[StringLength(50)]
[Required]
public string LastName {get; set;}
public DateTime? Enroled {get;set;}
public ICollection<Course> Courses { get; set; }
}
public class Course
{
public Course()
{
Students = new HashSet<Student>();
}
public int CourseID { get; set; }
[StringLength(30)]
[Required]
public string CourseTitle { get; set; }
[StringLength(255)]
public string CourseDesc { get; set; }
public ICollection<Student> Students { get; set; }
}
public ContextDB()
: base (@"Data Source=.\SQLEXPRESS;Initial Catalog=CollegeDB;Integrated Security=True")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Course>().HasMany(c=>c.Students).WithMany(p => p.Courses)
.Map(
m=> {
m.MapLeftKey("Course_CourseID");
m.MapRightKey("Student_StudentID");
m.ToTable("CourseStudents");
});
}
public DbSet<Student> Students { get; set; }
public DbSet<Course> Courses { get; set; }
}
var students = db.Students.ToList();
foreach (Student s in students)
{
Console.WriteLine("{0} {1}", s.FirstName, s.LastName);
foreach (Course c in s.Courses.ToList())
{
Console.WriteLine("{0}", c.CourseTitle);
}
}
おかげで今正常に動作します! – Karb
@ Karb:答えに残っている白いチェックマークをクリックすることで答えを受け入れることができます。答えがあなたの問題を解決したことを示します。 – Slauma
これで私は猥褻な時間を節約できました。私はカップルのコレクションをバーチャルにするのを忘れて、それをチェックすることさえ考えなかった。 – lintmouse