Overleg:Programmeren in ASP.net 2.0 N-Tier Tutorial/Common Laag/Database.cs

public DbTransaction BeginTransaction() {

   DbConnection con = _factory.CreateConnection();
   con.ConnectionString = ConnectionString;
   con.Open();
   return con.BeginTransaction();

}

Dit zal een open connectie in de SQL pool achterlaten en bij veel gebruik de pool vol laten lopen. Wanneer je een Transaction begint in je code en een .Commit() uitvoerd wordt het Connection object op NULL gezet. Dit betekent dat je nooit een .Connection.Close() kan doen.

Je kan ook gewoon de connectie meegeven van de class zelf.

public DbTransaction BeginTransaction() {

   //Update - volgende 2 regels commented - Volgens mij zijn deze regels nutteloos...
   //DbConnection con = _factory.CreateConnection();
   //con.ConnectionString = ConnectionString;
   if(this.Connection.State == ConnectionState.Closed)
       this.Connection.Open();
   return this.Connection.BeginTransaction();

}

Let wel even op dat je bij de andere methods ook de connectie alleen opened als die al closed is. Aangezien je bij een transaction de connection gewoon open laat. Dit kan je door 'if(this.Connection.State == ConnectionState.Closed)' toe te voegen aan de methods in Database.cs of een extra method aan maken voor het sluiten van de connectie.

Begin een overleg over Programmeren in ASP.net 2.0 N-Tier Tutorial/Common Laag/Database.cs

Overleg starten
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.
Terugkeren naar de pagina "Programmeren in ASP.net 2.0 N-Tier Tutorial/Common Laag/Database.cs".