在 Linq to sql 中处理事务
我正在实现 asp.net MVC Web 应用程序,其中使用 Linq to Sql 来操作数据库中的数据。但在我的其中一个操作中,我想插入多个表条目,这些条目通过引用先前的插入 ID 来相互依赖。所以我只是想知道如何处理事务,比如开始事务、提交、回滚等等,就像在 ADO.net 中一样。如何管理这个。如果其中一个插入在操作过程中崩溃怎么办?
注意:- 我在这里没有使用存储过程。我正在使用 Lambda 表达式和方法。这些也用于不同的管理器类。 示例: 对于创建主题 - 使用SubjectManager 类中的方法插入主题信息,返回主题ID。在这个 subjectid 中,我使用管理器类中的另一个方法作为 ChapterManager 插入它的章节。它再次返回 ChapterId,基于此 chapeter Id ,插入章节的主题。再次使用与上面相同的主题管理器。在每个管理器类中,我为其创建 dataContext 对象。我在控制器中通过一个操作来控制所有这一切。但担心交易管理。我怎么可以在这里使用?
I am implementing the asp.net MVC web application, where i am using the Linq to Sql to manipulate the data in database. but in my one of action, i want to insert multiple table entries which are depends upon each other by referring previous insertion Id's. So i just wnat to know how to handle the transaction, like begin transaction, commit,rollback and all like in ADO.net. how to manage this. what if one of insertion get crashed in the middle of manipulation?
Note:- I am not using the Stored procedures here. I am using Lambda expressions and methods. Also these are use in different manager classes.
Example:
For Create Subject - used method in SubjectManager class to insert subject infor, that returns subject Id. within this subjectid i am inserting the let say its chapters with another method in manager class as ChapterManager. which again returns the ChapterId, on base of this chapeter Id , inserting the Topics of chapter. that again uses Topic manager same like above.in each manger class i am creating dataContext object for the same. and I am controlling all this within a single action in my controller. but worrying about the transaction management. how I can use here ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
DataContext 已经包含一个嵌入的事务对象。例如,假设您正在为客户下新订单。您可以设置模型,以便以下代码使用单个 SubmitChanges 更新 Customer AND Order 表。只要两个表之间存在外键关系,嵌入式事务对象就会在同一事务中处理客户更新和订单插入。使用 TransactionScope 对象来封装单个 DataContext 是多余的:
The DataContext already includes an embedded transaction object. For example, let's say you are placing a new order for a customer. You can set up your model so that the following code updates both the Customer AND Order table with a single SubmitChanges. As long as a foreign key relationship exists between the two tables, the embedded transaction object handles both the Customer update and the Order insert in the same transaction. Using a TransactionScope object to encase a single DataContext is redundant:
我相信来自 System.Transactions 命名空间。
From the System.Transactions namespace I believe.