Ленивая Загруженная Собственность для Обнуляемой Собственности в Nhibernate - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть ленивое свойство, определенное в моем отображении следующим образом:

<property column="reviewspan" type="Int32" not-null="false" name="ReviewSpan" formula="(SELECT TOP 1 DATEDIFF etc. etc."/>

То, что я сопоставляю с ленивым свойством:

public virtual int? ReviewSpan { get; set; }

Это отлично работает в разработке, но когда я пробую его на живом сервере и загружаю объект следующим образом:

   at NHibernate.Properties.BasicPropertyAccessor.BasicSetter.Set(Object target, Object value)
   at NHibernate.Tuple.Entity.AbstractEntityTuplizer.SetPropertyValues(Object entity, Object[] values)
   at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValues(Object entity, Object[] values)
   at NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Object obj, Object[] values, EntityMode entityMode)
   at NHibernate.Cache.Entry.CacheEntry.Assemble(Object[] values, Object result, Object id, IEntityPersister persister, IInterceptor interceptor, ISessionImplementor session)
   at NHibernate.Cache.Entry.CacheEntry.Assemble(Object instance, Object id, IEntityPersister persister, IInterceptor interceptor, ISessionImplementor session)
   at NHibernate.Event.Default.DefaultLoadEventListener.AssembleCacheEntry(CacheEntry entry, Object id, IEntityPersister persister, LoadEvent event)
   at NHibernate.Event.Default.DefaultLoadEventListener.LoadFromSecondLevelCache(LoadEvent event, IEntityPersister persister, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent event, IEntityPersister persister, EntityKey keyToLoad, LoadType options)
   at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
   at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
   at NHibernate.Impl.SessionImpl.ImmediateLoad(String entityName, Object id)
   at NHibernate.Proxy.AbstractLazyInitializer.Initialize()
   at NHibernate.Proxy.AbstractLazyInitializer.GetImplementation()
   at NHibernate.ByteCode.Castle.LazyInitializer.Intercept(IInvocation invocation)
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.PlanProxy.get_CallTreeContacts()
   at ncontinuity2.core.services.ContactSyncService.GetCallTree(Guid planUid) in c:\projects\continuity2\ncontinuity2.core\services\contactsync\ContactSyncService.cs:line 42
   at ncontinuity2.core.controllers.contactsync.CallTreeInvokerController.CallTree(Guid uid) in c:\projects\continuity2\ncontinuity2.core\controllers\contactsync\CallTreeInvokerController.cs:line 91

Похоже, что Nhibernate пытается установить System.Object (потому что он ленивый) для Int32? поле.

Кроме объявления поля как не ленивого, есть ли что-нибудь вокруг этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...