After saying this, I will recommend you not using dynamic proxies with
domain entities.
IMHO; static AOP (like postsharp) fits better with entities.


2010/6/24 José F. Romaniello <[email protected]>

> I did a lot of this in unhaddins.
> My solution to your problem was this artifact;
>
>
> http://code.google.com/p/unhaddins/source/browse/trunk/uNhAddIns/uNhAddIns.NHibernateTypeResolver/EntityNameInterceptor.cs
>
>
> <http://code.google.com/p/unhaddins/source/browse/trunk/uNhAddIns/uNhAddIns.NHibernateTypeResolver/EntityNameInterceptor.cs>or
> whit events:
>
>
> http://code.google.com/p/unhaddins/source/browse/trunk/uNhAddIns/uNhAddIns.NHibernateTypeResolver/EntityNameResolver.cs
>
>
> <http://code.google.com/p/unhaddins/source/browse/trunk/uNhAddIns/uNhAddIns.NHibernateTypeResolver/EntityNameResolver.cs>You
> need to say to nhibernate what is the Entity name.
>
> checkout my tests:
>
>
> http://code.google.com/p/unhaddins/source/browse/trunk/uNhAddIns/uNhAddIns.ComponentBehaviors.Castle.Tests/EntityNameResolverFixture.cs
>
> 2010/6/16 mgernand <[email protected]>
>
> Hi,
>>
>> At the moment I'm building the base architecture for a web application
>> which uses NHibernate as it's data access layer. I'm are using
>> LinFu.Dynamic
>> Proxy to create runtime-proxies for our entities to achieve certain
>> additional functionalities like:
>>
>> - Implementation of Policies
>> - Authorization
>> - Logging/Tracing
>> - ... (other cross cutting concerns)
>>
>> This all works fine, but - and now to the problem I have with
>> NHibernate -
>> NHibernate ist not workling properly with those proxies. To avoid
>> errors like "no persister for: UserProxy" my repositories also make
>> use
>> of proxies to intercept calls to methods like "SaveOrUpdate" where
>> I unwrap the entity from my own proxies an then delegate those
>> "original" entities to NHibernate, and on the way back wrap results
>> from the repositories into proxy instances.
>>
>> This worked fine until I tried to use "SaveOrUpdate". The error I got
>> was "NonUniqueObjectException: a different object with the same
>> identifier value was already associated with the session".
>>
>> The first thing I tried was to disable the whole proxy-infrstructure.
>> After that the error I mentioned above did no longer appear. That
>> was the point where some hours of googleing and blog-reading
>> lead to no result.
>>
>> My last attempt was to create a custom Persister which should
>> be able to deal with my proxy type. But unfortunately with no
>> positive result. I was able to implement a custom Persister, but
>> at (Fluent)NHibernate configuration time a error occured which
>> tells me that the assembly file "ProxyAssembly" was not found, which
>> is not very surprising since the LinFu proxy types are located
>> in an in-memory assembly.
>>
>> Now I have to admit: I'm totally stuck and out of ideas. ;-)
>> Maybe somewone has an idea to convince NHibernate to persist
>> dynamic proxies or use the unproxied instances. This ist the most
>> odd thing: why is NHibernate complaining about non-uniqueness
>> only if the unproxied instances are used? I tried to evict and re-
>> merge
>> those entities, what lead to a partial success. I could
>> "SaveOrUpdate"
>> the instances, but only bevor a first "CommitTransaction" within one
>> transaction and not in another transaction or after an "Flush".
>>
>> I hope someone can help a bit, or enlighten me with some other view
>> or inside-knowlege of NHibernate.
>>
>> I'd be pleased to hear some ideas on this very tricky topic.
>>
>> Kind regards, Matthias
>>
>> --
>> 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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>>
>

-- 
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.

Reply via email to