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.

Reply via email to