我在Firebug中看到以下行为:
当调试器在断点处暂停时,如果我转到控制台并尝试执行语句,则该Enter键只保留添加行而不是执行.
我试过打Shift+ Enter和Ctrl+ Enter也无济于事.
为什么EF首先在它所依赖的对象(TimesheetActivity)之前插入具有依赖项的子对象(PersonnelWorkRecord).还有什么我可以选择纠正这个?
这是由我直接控制的另一个系统预定义的.

我不确定我理解为什么/如何实体框架按照它的顺序插入我拥有的对象,但这里是我用来插入父和几个孩子的代码.
using (var db = new DataContext(user))
{
timesheet.State = State.Added;
timesheet.SequenceNumber = newSequenceNumber;
this.PrepareAuditFields(timesheet);
//To stop EF from trying to add all child objects remove them from the timehseets object.
timesheet = RemoveChildObjects(timesheet, db);
//Add the Timesheet object to the database context, and save.
db.Timesheets.Add(timesheet);
result = db.SaveChanges() > 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我在PersonnelWorkRecord(TimesheetActivityID)上遇到SQL外键冲突,因为我还没有添加Activity(请参阅trace).
exec sp_executesql N'insert [dbo].[Timesheets]([ProjectID], [TimesheetStatusID], ...
exec sp_executesql N'insert [dbo].[PersonnelWorkdays]([TimesheetID], [PersonnelID], ...
exec sp_executesql N'insert [dbo].[PersonnelWorkRecords]([PersonnelWorkdayID],[TimesheetActivityID], ...
Run Code Online (Sandbox Code Playgroud)
modelBuilder.Entity<PersonnelWorkday>().HasRequired(pwd => pwd.Personnel).WithMany(p …Run Code Online (Sandbox Code Playgroud)