ふらっと C#,C♯,C#(初心者用) Part122 [無断転載禁止]©5ch.io
レス数が950を超えています。1000を超えると書き込みができなくなります。
0977デフォルトの名無しさん
2016/07/31(日) 11:26:30.84ID:tdu9NojY>> 953
ちなみにdb.Entry(student).State = EntityState.Unchanged;みたいなのしていますか?
これをしないと片方の追加だけなのに、もう片方に新規で追加されていきます。DBcontextをまとめた処理が
public DbSet<Subject> SubjectInfo { get; set; } public DbSet<Teacher> TeacherInfo { get; set; } public DbSet<Student> StudentInfo { get; set; }
追加時は下記です。
public Teacher Create( Teacher teacher ) {
Teacher newTeacher;
using( var db = new DbContext() ) {
// 外部キーで設定している科目と関連付ける処理
User subject = ( from d in db.SubjectInfo where d.Id == Teacher.User.Id select d ).First();
db.Entry( subject ).State = EntityState.Unchanged;
newTeacher = new Teacher { Name = teacher.Name,
Subject = subject,
studentLists = teacher.studentLists // これを入れるとMultiplicity constraint violated.
// db.Entry(???).State = EntityState.Unchanged;でエラー
};
if ( newTeacher.studentLists != null) {
foreach ( Student student in newTeacher.studentLists ) {
// db.studentInfo.Attach( student );
// db.Entry( student ).State = EntityState.Unchanged;
}
}
// アクセスするところを紐づける
GetTable( db ).Add( newTeacher );
db.SaveChanges();
}
return newTeacher;
}
レス数が950を超えています。1000を超えると書き込みができなくなります。