0

テーブルの最初のレコードに変更を適用し、同じテーブルに 1 つ以上のレコードを追加するにはどうすればよいですか? 次の例外が発生します。

同じキーを持つオブジェクトが ObjectStateManager に既に存在します。ObjectStateManager は、同じキーを持つ複数のオブジェクトを追跡できません

以下のサンプルコードを参照してください。

var Student = db.Student.Where(d => d.StudentID == studentID);
                                        int count = 0;    
                                        if(Student != null)
                                            {
                                                foreach(var student in Student)
                                                {
                                                    if (student.Id == id)
                                                    {
                                                        foreach (var assign in assignment)
                                                        {
                                                            if (assign != null && count == 0)
                                                            {
                                                               //How can I save the changes that is made to the first record here
                                                                assign.AssignmentId = student.AssignmentID;
                                                                db.Assignment.ApplyCurrentValues(assign);
                                                            }

                                                            if (assign != null && count > 0)
                                                            {
                                                                //How can I add new records here
                                                                assign.AssignmentId = student.AssignmentID;
                                                                db.Assignment.AddObject(assign);
                                                            }
                                                            count++;
                                                        }
                                                    }


                                                }
                                            }
4

1 に答える 1

0

この行の後に save を呼び出してみてください。

db.Assignment.ApplyCurrentValues(assign);
db.SaveChanges();

次に、新しいエントリの場合:

var assignment = new Assignement() { AssignmentId = student.AssignmentID };
db.Assignments.Add(model);
db.SaveChanges();
于 2013-07-11T14:22:24.220 に答える