views:

360

answers:

3

I am developing application in N-Tier Architecture. as we all know that we need to implement transactions while insert/update/delete operation. please tell me how to use transaction in c#.net in N-Tier architecture. my architecture is like this Applicationform->middle_Layre->Factory->DataAccessLayre->StoredProcedure->Table in application form i create object of middleLayer and pass data in Insert/update/delete function of middle layer. i am creating object of sqlcommand in factoryclass and fill the data which i gets from middle layer and pass that object os sqlcommand to DAL.

+2  A: 

The general pattern that is followed nowadays is:

Database <--> DAL <--> BLL <--> Controller <--> View Model <--> UI

Where

DAL == Data Access Layer (aka ORM, Object-Relational mapper)
BLL == Business Logic Layer

In this model, the transaction takes place in the BLL, where a "unit of work" is arranged. Typically, this happens by requesting data from the DAL, performing work on it, and saving changes. The DAL will generally wrap a transaction around your unit of work.

The Database, DAL, and BLL collectively form what is known as the Model in MVC (Model-view-controller) architecture. All business logic and data manipulation takes place in the Model. The controller acts as a go-between between the model and the View Model/UI, which collectively form the view.

In your case, the transaction would probably take place in your "middle layer," since that's the most likely place for your "units of work."

Robert Harvey
i am not using MVC architecture.
Rajesh Rolen- DotNet Developer
i want transaction for multiple operation in same transaction.
Rajesh Rolen- DotNet Developer
Yes, that's what a "unit of work is." The MVC architecture is just an illustration. In short, your transaction should be in the same layer as your business logic.
Robert Harvey
+1  A: 

As long as your code is running on the same machine, without any WCF or Web Service calls between the layers, you could use TransactionScope.

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx

Just place the calls that you want to occur with a transaction, inside the transaction scope.

Shiraz Bhaiji
+1  A: 

Here a good link that providing good details about maintaing Transaction in LINQ to SQL

http://www.a2zmenu.com/LINQ/Maintain%20Transaction%20in%20LINQ%20to%20SQL.aspx

rs.emenu