I did not. But if I do, I get a compiler warning saying 'Castle.Services.Transaction.TransactionalAttribute' is obsolete: 'Deprecated; just remove this attribute for the same effect. No other changes are necessary.', so I guess I shouldn't have to :P
Just to be clear: I'm using version 3.0.201.2201 of the Castle.Services.Transaction.dll, which was the latest version available on NuGet the other day. // Tomas On Fri, Jul 22, 2011 at 14:27, Glauber Silva <[email protected]> wrote: > Did you mark the class as transactional? > > > On Thu, Jul 21, 2011 at 7:34 PM, Tomas Lycken <[email protected]>wrote: > >> There's a bunch of failing tests in the NCVIB branch where I put a sample >> for some other problem before, at >> https://github.com/ncvib/NCVIB/tree/inspectiondb in the >> IntegrationTest.NCVIB.Repositories.InspectionObjectRepository class. I'll >> find a specific one to point to tomorrow, when I'm at work and have the code >> infront of me. >> >> I'll gladly help with the docs if I can - I'm not sure I understand much >> of how the library works, though, so I might not be of much help. But I'll >> do my best =) >> >> // Tomas >> >> >> >> On Thu, Jul 21, 2011 at 21:20, Henrik Feldt <[email protected]> wrote: >> >>> Hello Tomas, >>> >>> Can you provide a failing unit test? >>> >>> If I help you fix this, would you help me update the documentation? >>> >>> Henrik >>> >>> -----Original Message----- >>> From: [email protected] >>> [mailto:[email protected]] On Behalf Of Tomas Lycken >>> Sent: den 20 juli 2011 13:42 >>> To: Castle Project Users >>> Subject: Transaction attribute not orchestrating transactions as expected >>> >>> Hi everybody, >>> >>> I have a generic repository base class for my NHibernate repositories, >>> Repository<TEntity>, in which I want to provide a couple of standard >>> methods >>> within transactions. I'm using the Castle.Services.Transaction, together >>> with Castle.Facilities.AutoTx and Castle.Facilities.NHibernate >>> >>> public abstract class Repository<TEntity> where TEntity : >>> IEntity // common entity interface that declares int ID { get; } >>> { >>> protected Func<ISession> SessionGetter; >>> >>> public Repository(Func<ISession> sessionGetter) { SessionGetter = >>> sessionGetter; } >>> >>> [Transaction(Mode = TransactionScopeOption.Required)] >>> protected virtual void Save(TEntity entity) >>> { >>> var session = sessionGetter(); >>> session.Save(entity); >>> } >>> } >>> >>> When I call this method from a repository implementation, I get an >>> exception >>> saying "Castle.Facilities.AutoTx.MissingTransactionException : No >>> transaction in context when trying to instantiate model >>> 'NHibernate.ISession' for resolve type 'NHibernate.ISession'. If you have >>> verified that your call stack contains a method with the [Transaction] >>> attribute, then also make sure that you have registered the AutoTx >>> Facility." If I put the attribute on the calling method, everything works >>> - >>> but I want to be able to throw and catch exceptions in the calling >>> methods >>> without having to worry about the transaction committing or rolling back, >>> so >>> I'd like to isolate the db work in small methods that orchestrate a >>> transaction, do its job and then commits (or rolls back and bubbles the >>> exception). >>> >>> I am not familiar enough with the castle project to really understand >>> what's >>> going on behind the scenes here, and the documentation I've found (here: >>> http://docs.castleproject.org/Windsor.ATM-Facility.ashx) >>> is pretty sparse and mildly outdated. >>> >>> Please advise if this is doable - and if so, how. Thanks! >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Castle Project Users" 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/castle-project-users?hl=en. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Castle Project Users" 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/castle-project-users?hl=en. >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" 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/castle-project-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" 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/castle-project-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" 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/castle-project-users?hl=en.
