1

次のデータベース テーブルがあります: TeachersSubjects、およびTeachersSubjects

すべての主キーが適切に設定されています。

私はウェブページを持っていて、教師の名前と彼女が教える教科のリストを入力するだけの簡単なエントリを作成したいと考えています。

VS2012 Express と Entity Framework を使用しています。

    NorthwindCustEntities context = new NorthwindCustEntities();

    Teacher t1 = new Teacher() { Name = "Jane Smith" };

    Subject s1 = new Subject() { Name = "Math" };
    Subject s2 = new Subject() { Name = "Science" };

    context.Subjects.Add(s1);
    context.Subjects.Add(s2);
    context.Teachers.Add(t1);

    context.SaveChanges();

では、クイック エントリ ページからワンクリックでデータベースに移動し、3 つのテーブルすべてを伝播するにはどうすればよいでしょうか?

4

2 に答える 2

1

これを使って:

// think we have a 
string teacherName;
// and a list of 
string[] subjectNames;
// then:

NorthwindCustEntities context = new NorthwindCustEntities();

Teacher t1 = new Teacher() { Name = teacherName };
t1.Subjects = new List<Subject>();
foreach(var subject in subjectNames) {
    t1.Subjects.Add(new Subject() { Name = subject });
}

context.Teachers.Add(t1);

context.SaveChanges();

またはあなたの例で:

NorthwindCustEntities context = new NorthwindCustEntities();

Teacher t1 = new Teacher() { Name = "Jane Smith" };

Subject s1 = new Subject() { Name = "Math" };
Subject s2 = new Subject() { Name = "Science" };

t1.Subjects.Add(s1);
t1.Subjects.Add(s2);
context.Teachers.Add(t1);

context.SaveChanges();
于 2013-08-03T04:17:25.953 に答える
1

次のコードを使用します。

NorthwindCustEntities context = new NorthwindCustEntities();

Teacher t1 = new Teacher() { Name = "Jane Smith" };

Subject s1 = new Subject() { Name = "Math" };
Subject s2 = new Subject() { Name = "Science" };

context.Subjects.Add(s1);
context.Subjects.Add(s2);

t1.Subjects.Add(s1);
t1.Subjects.Add(s2);
context.Teachers.Add(t1);

context.SaveChanges();
于 2013-08-03T04:19:42.053 に答える