Hello,
Just a question and advice on how you handle transactions in your
applications. Currently I have an ISessionSource that has a GetSession
method like so:
public interface ISessionSource {
ISession CreateSession();
}
I inject this into my repository using Windsor, my implementation
returns a per request session when CreateSession is called.
Now my repository uses this to get the current session, now in my
service update method I do something like the following:
Update(Customer customer) {
this.customerRepository.Update(customer);
}
Which works fine, I am getting to the case where I would like to write
to another repository that is unrelated and have the two calls wrapped
in a transaction, say writing to a log (NO I am not writing to a log
table but it is just the simplest example I could think of).
Update(Customer customer) {
this.customerRepository.Update(customer);
this.logRepository.Insert(logItem);
}
Now the idea was to inject my ISessionSource into my SERVICE and do
something like this:
Update(Customer customer) {
using(var tx = this.sessionSource.BeginTransaction()) {
this.customerRepository.Update(customer);
this.logRepository.Insert(logItem);
tx.Commit();
}
}
Would you be injecting the session manager into the service like this
or is there a neater way to do this, I cannot see any issues but just
wanting to get some oppinions on how other people would handle this.
Cheers
Stefan
--
Stefan Sedich
Software Developer
http://weblogs.asp.net/stefansedich
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---