Я пишу приложение с использованием MVC2 и EF4. Я создал объекты из моей базы данных, у меня есть таблица расписаний и таблица TimesheetEntry.Как обновить объект с помощью свойства навигации коллекции (с MVC2)
Я использую функции привязки модели MVC2 и успешно получаю объект Timesheet с его 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();
Тогда мои TimesheetEntries не сохраняются.
Я пытался без успеха, чтобы сделать это с помощью других средств, например, удаление всех записей:
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 в БД :-(Просто ? интересно, если IAM ложного дерева здесь все вместе
PS если кто-нибудь хочет получить больше информации о каком-либо из этих вещей, дайте мне знать, и я могу разместить больше кода
Я тестировал его, и он отлично работает. Мне пришлось изменить «context.TimesheetEntries.ApplyCurrentValues (e)» в контексте раздела обновления ((IObjectContextAdapter)) .ObjectContext.ApplyCurrentValues («TimesheetEntries», e)); 'для EF6. – beawolf