2012-01-17 82 views
0

我正在使用edmx(Ado.net实体数据模型)来回我的项目之一。 我想管理我的保存交易。 我想为所有交易执行交易完整性。 我该如何执行此操作。 有人可以给我一些教程我们如何在edm中执行交易完整性

+0

*我想为所有事务执行事务完整性*这是什么意思?每次您调用'SaveChanges'时,EF都会执行交易。 – 2012-01-17 12:07:24

+0

@LadislavMrnka阅读我的确切查询在下面的回答, – user1006544 2012-01-17 13:22:23

回答

1

SaveChanges将创建它自己的交易。只有在事务成功完成后才会接受ObjectContext中的更改。

如果您想要更多地控制事务(可能针对不同ObjectContexts的多个操作),您可以使用自己的TransactionScope,实体框架将检测此事务并将其用于他自己的操作。

Here is the MSDN Documentation关于管理交易。

+0

评论我的情况是这样的 - 假设我想保存数据在图像表中生成imageID,然后我想保存数据在页表中与该图像ID生成pageID,现在我想在第三个表PageImage中添加pageID和ImageID,所以我想如果任何一个事务失败,那么所有的事务都会回滚 那我想要的 – user1006544 2012-01-17 13:21:08

+0

如果你已经正确地定义了模型,导航属性,并用同样的方式保存图像和页面到'SaveChanges'。 – 2012-01-17 13:25:14

+0

如果所有这些对象都属于同一个ObjectContext实体框架将确保所有的ID都设置正确。你只需要把对象和对方联系起来,没什么特别的。如果它们是不同ObjectContext的一部分,则需要使用自己的事务来处理它们。你为什么不向我们展示一些代码? – 2012-01-17 13:26:22