Я пишу приложение, используя MVC2 и EF4. Я создал объекты из своей базы данных, у меня есть таблица расписаний и таблица расписаний.
Я использую функции привязки модели в MVC2 и успешно получаю объект расписания с его элементами TimesheetEntries, заполненными объектами TimesheetEntries, созданными пользователем.
Если я использую технику, которую использовал в других методах (здесь табель - это объект, созданный инфраструктурой MVC):
Timesheet temp = context.Timesheets
.Include("TimesheetEntries")
.Where(t => t.Id == timesheet.Id).First();
context.ApplyCurrentValues<Timesheet>(temp.EntityKey.EntitySetName, timesheet);
context.SaveChanges();
Тогда мои записи расписания не сохраняются.
Я безуспешно пытался сделать это другими способами, например, удалить все записи:
Timesheet temp = context.Timesheets
.Include("TimesheetEntries")
.Where(t => t.Id == timesheet.Id).First();
context.ApplyCurrentValues<Timesheet>(temp.EntityKey.EntitySetName, timesheet);
context.ExecuteStoreCommand(@"DELETE FROM TimesheetEntry WHERE Timesheet=" + timesheet.Id.ToString());
foreach (TimesheetEntry entry in timesheet.TimesheetEntries)
{
entry.Timesheet = timesheet.Id;
context.TimesheetEntries.AddObject(entry);
}
context.SaveChanges();
return Redirect("ListTimesheets?PersonnelId="+timesheet.Person);
Это не работает должным образом, я все еще не получаю TimesheetEntries в БД :-( Просто интересно, не все ли здесь лает в неправильном дереве?
P.S. если кто-то хочет больше информации о любой из этих вещей, дайте мне знать. и я могу выложить больше кода.