2

MVC プロジェクトで Code First アプローチを使用しています。簡単にするために、エンティティ間に多対多の関係がある2 つclasses Courseを用意しました。Modulesこれが私のクラスの構造です

 public class Course
    {
        public int CourseId { get; set; }                  
        public string Title { get; set; }

        public virtual ICollection<Module> Modules { get; set; 
}

public class Module
    {
        public int ModuleId { get; set; }                 
        public string Title { get; set; }
        public int Credits { get; set; }

        public virtual ICollection<Course> Courses {get;set;   
 }

各コントローラーが各クラスのテーブルを作成する EntityFramework を使用して、それぞれに 2 つのコントローラーを作成しました。多対多の関係を持つようになったので、EF は 3 番目のジャンクション テーブルを作成するのに十分なほどスマートです。CourseModule(FK_Course_ID, FK_ModuleID). しかし問題は、このテーブルにそれぞれのテーブルのキーが入力されていないことです。空白です。どうすればそれを理解できますか?

ありがとう。

4

1 に答える 1

1

私はここで手足を出していますが、コンテキストクラスに次のものがありますか:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
       base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Course>()
                .HasMany(s => s.Modules)
                .WithMany(a => a.Courses)
                .Map(m =>
                {
                    m.MapLeftKey("CourseID");
                    m.MapRightKey("ModuleID");
                    m.ToTable("CourseModules");
                });
}

また、コース/モジュールを保存しようとしているコードを確認できますか?

于 2013-03-21T15:18:26.667 に答える