У меня есть одна форма для редактирования события, в которой пользователь может (а) редактировать детали события (заголовок, описание, даты и т. Д.) В FormView и (б) просматривать и редактировать ListView из контакты, которые зарегистрированы на событие.
Вот мой LinqDataSource, который позволяет мне добавлять и удалять контакты на событие.
<asp:linqdatasource runat="server" id="ContactsDatasource" contexttypename="Db" tablename="ContactsCalendarEventsXtabs" autogeneratewhereclause="true" enabledelete="true" enableinsert="true">
<whereparameters>
<asp:querystringparameter name="CalendarEventID" querystringfield="id" type="Int32" />
</whereparameters>
<insertparameters>
<asp:querystringparameter name="CalendarEventID" querystringfield="id" type="Int32" />
</insertparameters>
</asp:linqdatasource>
Это прекрасно работает, но, конечно, оно сохраняет изменения в базе данных по мере их внесения; и это работает только тогда, когда событие уже было создано. В идеале я хотел бы, чтобы мои изменения в ListView сохранялись только после сохранения FormView (поэтому, если кто-то вносит некоторые изменения в ListView, а затем отменяет его из FormView, эти изменения отбрасываются). В том же духе я хотел бы иметь возможность создать новое событие, ввести его детали и подписать на него несколько человек, причем сразу; когда FormView сохраняет, он получает новый идентификатор для события, а затем ListView сохраняет с использованием этого идентификатора.
В прошлом (до Linq) я достигал этого с помощью своих собственных сильно настроенных объектов FormView и SqlDataSource, которые заботятся о временном сохранении изменений данных, получении идентификатора события из FormView и т. Д. Есть ли еще Стандартный способ борьбы с этим сценарием с использованием LinqDataSource?