2012-01-17 2 views
0

Я использую edmx (Ado.net Entity Data Model) для одного из моих проектов. Я хочу управлять моей транзакцией сохранения. Я хочу выполнить транзакционную целостность для всей транзакции. Как это сделать. Может ли кто-нибудь предоставить мне некоторый учебникКак выполнить транзакционную целостность в edm

+0

* Я хочу выполнить транзакционную целостность для всей транзакции *, что это значит? EF запускает транзакцию каждый раз, когда вы вызываете 'SaveChanges'. –

+0

@LadislavMrnka прочитал мой точный запрос в комментарии ниже ответа, – user1006544

ответ

1

SaveChanges создаст собственную транзакцию. Изменения в ObjectContext будут приниматься только после успешного завершения транзакции.

Если вы хотите больше контролировать свою транзакцию (возможно, для нескольких действий против разных объектов ObjectContext), вы можете использовать свой собственный TransactionScope, и Entity Framework обнаружит эту транзакцию и использует ее для своих собственных операций.

Here is the MSDN Documentation об управлении сделками.

+0

моя ситуация в этом - предположим, я хочу сохранить данные в таблице изображений, которые генерируют идентификатор изображения, затем я хочу сохранить данные в таблице страниц с этим идентификатором изображения, которые генерируют pageID, и теперь я хочу добавить как pageID, так и ImageID в третью таблицу PageImage, поэтому я хочу, чтобы какая-либо одна транзакция завершилась неудачей, тогда вся транзакция будет возвращена обратно , что я хочу – user1006544

+0

Это будет сделано автоматически, если вы правильно определили модель с навигационных свойств, и вы сохраняете изображение и страницу с тем же вызовом на 'SaveChanges'. –

+0

Если все эти объекты принадлежат к одной ObjectContext Entity Framework, убедитесь, что все идентификаторы установлены правильно. Вы должны только ассоциировать объекты с eachother, ничего особенного. Если они являются частью разных объектов ObjectContext, вам нужно будет охватить их собственной транзакцией. Почему бы вам не показать нам какой-то код? –

Смежные вопросы