OK, issue solved; I am apparently a moron.  The trouble is on my side;
we are using automapping in SOME places and explicit mapping in others
and I was making the change in (some) of the wrong places in code.

Problem solved; sorry to have bothered eveyone with my incompetence
<g>.  As soon as I attempted to reproduce my issue in a sandbox
(outside of the scope of my actual application), I verified the issue
isn't with FNH (worked fine in my sandbox, which lead me to the root
of the issue with out impl).

Thanks,

-Steve B.


On Jul 30, 5:34 pm, James Gregory <[email protected]> wrote:
> That's quite strange, how up-to-date is your copy? I was using the cache
> stuff just last week! Shouldn't make any difference but if I remember
> correctly my cache call was first in my mappings... It really shouldn't make
> a difference but it might be worth a shot.
>
>
>
> On Thu, Jul 30, 2009 at 10:27 PM, sbohlen <[email protected]> wrote:
>
> > So debugging into the eventual ISessionFactory instance confirms that
> > the ISessionFactory.IsSecondLevelCacheEnabled property is in fact
> > 'true' and that the CacheProvider is set correctly.
>
> > But asking FNH to spit out my mappings to disk turns up that the
> > mappings for my entity don't seem to be created with the proper cache-
> > related attributes in the mapping (e.g., no <cache usage="read-only"/>
> > value).
>
> > This code....
>
> >    class MyEntity: ClassMap<MyEntiity>
> >    {
> >        public MyEntityMap()
> >        {
> >            Map(x => x.Id);
> >            Map(x => x.Width);
> >            Map(x => x.Height);
> >            Map(x => x.Name);
> >            Cache.AsReadOnly();
> >        }
> >    }
>
> > ...produces this XML mapping file...
>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
> > access="">
> >  <class name="MyEntity, MyAssembly, Version=1.0.0.0, Culture=neutral,
> > PublicKeyToken=null" table="MyEntity" xmlns="urn:nhibernate-
> > mapping-2.2">
> >    <id name="Id" type="Int64" column="id">
> >      <generator class="identity" />
> >    </id>
> >    <property name="Width" type="Int32">
> >      <column name="width" />
> >    </property>
> >    <property name="Height" type="Int32">
> >      <column name="height" />
> >    </property>
> >    <property name="Name" type="String">
> >      <column name="name" />
> >    </property>
> >  </class>
> > </hibernate-mapping>
>
> > ...which is obviously devoid of any cache attribute at all, explaining
> > why I don't get ant caching on my entity.  Am I overlooking something
> > here in the function of Cache.AsReadOnly() or is this a bug...?
>
> > Any help appreciated.
>
> > Thx in advance,
>
> > -Steve B.
>
> > On Jul 30, 4:06 pm, sbohlen <[email protected]> wrote:
> > > I must be overlooking something (probably simple), but can anyone
> > > describe to me (or point me to a blog post or other resource) that
> > > covers how to use FNH to configure the second-level-cache properly?
>
> > > In my configuration, I'm presently doing this...
>
> > >     MsSqlConfiguration.MsSql2005.ConnectonString(...)
> > >         .Cache(c=>c.ProviderClass<HashtableCacheProvider>());
>
> > > ...and in my ClassMap<T> I'm doing...
>
> > >     Map(...)
> > >     Cache.AsReadOnly();
>
> > > ...which would SEEM from the docs to be all that's needed.  Using XML,
> > > I'd also have to set...
>
> > >     <property name="cache.use_second_level_cache">true</property>
>
> > > ...in the hibernate.cfg.xml file but while I was somewhat expecting to
> > > be able to say something like...
>
> > >     MsSqlConfiguration.MsSql2005.ConnectonString(...)
> > >         .Cache(c=>c.ProviderClass<HashtableCacheProvider>())
> > >         .Cache(x=x.UseSecondLevelCache(true));  //<--- expected line
> > > here
>
> > > ...there's no such method exposed for the Cache.  In FNH, does simply
> > > setting the Cache's ProviderClass implicitly also ENABLE the second-
> > > level cache or am I missing another method that's needed to actually
> > > turn the Cache on?  Didn't see anything that obvious in
> > > intellisense...
>
> > > And if nothing else is needed (e.g., my code above -- minus the extra
> > > method I seem to want to call even though it doesn't exist -- is
> > > actually correct), does anyone have any other ideas about why this
> > > collection of settings actually doesn't prevent my query for my cached
> > > objects from hitting the DB when its invoked a second time?
>
> > > Feels like this would take perhaps 20 seconds in XML but is becoming
> > > increasingly frustrating in code :(
>
> > > Thoughts, anyone--?
>
> > > -Steve B.- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" 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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to