Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Connection.Start and Connection.Finished calls #10

Closed
hisystems opened this issue Mar 4, 2012 · 1 comment
Closed

Improve Connection.Start and Connection.Finished calls #10

hisystems opened this issue Mar 4, 2012 · 1 comment
Assignees

Comments

@hisystems
Copy link
Owner

Currently, before accessing the database the connection must be ensured to be opened. This is achieved with the Database.Connection.Start. This call will open the connection if it has not already been opened. Similarly the Database.Connection.Finished call will close the connection if it is the last Finished call. If the Finished call is embedded within the bounds of a Start / Finished call set then the Finished call does nothing, it only decrements a counter.

The issue with this approach is that if an exception occurs the Finished call may not be called (unless it is in the finally section of a try / catch).

@hisystems
Copy link
Owner Author

A new class should be created called ConnectionScope with a Database argument. The constructor will call the Connection.Start method and the Dispose method will call the Finished method. This will ensure that if an unexpected exception occurs the connection is correctly closed. This should also work when used in conjunction with a System.Transactions.TransactionScope object.

All of the code in the Database class should be updated to utilise this new construct.

@ghost ghost assigned hisystems Mar 4, 2012
hisystems added a commit that referenced this issue Mar 21, 2012
Provides the ability to open and close a database connection and also ensure that unexpected will still close the connection. Typically this will be used with a Using construct.
hisystems added a commit that referenced this issue Mar 22, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant