Yes, that was the case. Thanks.
My other question regarding taking ISession as a ctor argument. Then all
those classes (queryobject, service and repository) needs to be transient?

On Sun, Sep 20, 2009 at 12:45 PM, Ayende Rahien <[email protected]> wrote:

> You need to register the factory facility.
>
>
> On Sun, Sep 20, 2009 at 10:15 AM, Martin Nilsson <[email protected]>wrote:
>
>> Ok ok :)
>>
>> I changed to this instead:
>> Kernel.Register(Component.For<ISession>().LifeStyle.Transient.UsingFactoryMethod(()
>> => Kernel.Resolve<ISessionFactory>().GetCurrentSession()));
>>
>> but then I get error:
>> "Type NHibernate.ISession is abstract.
>> As such, it is not possible to instansiate it as implementation of
>> NHibernate.ISession service"
>>
>> My solution now is this (not causing the above error):
>>
>> ServiceClass:
>>   ctor(IUnitOfWorkFactory unitOfWorkFactory)
>>
>>   In ServiceMethod:
>>     var session = unitOfWorkFactory.CurrentSession;
>>
>> Questions:
>> 1. Anyone knows why I get the above error?
>> 2. Is my other solution (using IUnitOfWorkFactory) better/ok then?
>> 3. You say that it's possible (better?) to take the ISession as a ctor
>> arg. Will that be a different one for each req if my service class is
>> singleton, although my session registration is transient?
>>
>>
>> On Fri, Sep 18, 2009 at 9:50 PM, Ayende Rahien <[email protected]> wrote:
>>
>>> This is HORRIBLE.
>>> You micro manage the session and remove from NH things like UoW, auto
>>> change tracking, persistence by reachability, etc.
>>> Sessions should be managed by request / context, not in methods.
>>>
>>> On Fri, Sep 18, 2009 at 4:25 PM, Martin Nilsson <[email protected]>wrote:
>>>
>>>>
>>>> ProductService:
>>>> public void Save(Product product) {
>>>>   using(var session = ?.GetSession)
>>>>   using(var tx = session.BeginTransaction())
>>>>   {
>>>>     repository.Add(product);
>>>>     tx.Commit();
>>>>   }
>>>> }
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" 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/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to