On Sat, Aug 30, 2014 at 6:37 AM, Gleb Chermennov
<thebitteren...@gmail.com> wrote:
> I see your point.
> Can you post your code - classes, mappings and Fluent configuration -
> somewhere on the web (like gist/github) or just email them to me in case
> your project isn't opensource?
> I'll investigate.

Thanks for being available.

Upon closer examination, I overlooked a confusion between the ClassMap
and the SubclassMap. ClassMap for the abstract domain class was still
itself abstract. Should just be a concrete class with public
parameterless ctor itself. SubclassMap I extended from an abstract
base class serving the abstract domain model. The domain model itself
is fine as well.

Thank ye!

> суббота, 30 августа 2014 г., 1:41:53 UTC+4 пользователь mwpowellhtx написал:
>>
>> Hello,
>>
>> I've read a post on SO, but I have a case where I don't have a list so
>> much as a HasOne.
>>
>> One of my domain classes HasOne, but that one extends an abstract base
>> class. I want the abstraction to persist to table-per-hierarchy in the usual
>> sense, but how to persuade Fluent (and/or NHibernate) that it's okay to have
>> the abstract base class.
>>
>> In the meantime, I am receiving an exception building the configuration.
>> AbstractScheduler is appropriately abstract, protected-parameterless-ctor,
>> should not be instantiating it. However the mapping wants a
>> public-parameterless-ctor.
>>
>> Otherwise, I have mapped the derived schedulers in the usual SubclassMap
>> sense with a discriminator value. Interested to know how to work past this
>> sort of use case. I could set it up as a "default scheduler" in the base
>> class, but that's not as interesting, and could lead to domain design
>> confusion.
>>
>> Thank you...
>>
>> FluentNHibernate.Cfg.FluentConfigurationException was unhandled
>>   HResult=-2146233088
>>   Message=An invalid or incomplete configuration was used while creating a
>> SessionFactory. Check PotentialReasons collection, and InnerException for
>> more detail.
>>
>>
>>   Source=FluentNHibernate
>>   StackTrace:
>>        at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
>>        at
>> Football.Data.Repository.Hibernate.SessionFactoryConfigurator.CreateFactory()
>> in i:\Source\Kingdom
>> Software\Football\Simulator\Football.Data\Repository\Hibernate\SessionFactoryConfigurator.cs:line
>> 66
>>        at
>> Football.Repository.SessionFactoryConfiguratorBase`1.get_Factory() in
>> i:\Source\Kingdom
>> Software\Football\Simulator\Football.Repository\SessionFactoryConfiguratorBase.cs:line
>> 37
>>        at
>> Football.Data.RepositoryExtensionMethods.GetRepositoryForSession[TConfigurator,TRepository](TConfigurator
>> configurator, Func`2 getter, IInterceptor sessionLocalInterceptor) in
>> i:\Source\Kingdom
>> Software\Football\Simulator\Football.Data\Extensions\RepositoryExtensionMethods.cs:line
>> 26
>>        at Football.Migrator.Program.Main(String[] args) in
>> i:\Source\Kingdom
>> Software\Football\Simulator\Football.Migrator\Program.cs:line 52
>>        at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,
>> String[] args)
>>        at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
>> assemblySecurity, String[] args)
>>        at
>> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
>>        at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
>>        at System.Threading.ExecutionContext.RunInternal(ExecutionContext
>> executionContext, ContextCallback callback, Object state, Boolean
>> preserveSyncCtx)
>>        at System.Threading.ExecutionContext.Run(ExecutionContext
>> executionContext, ContextCallback callback, Object state, Boolean
>> preserveSyncCtx)
>>        at System.Threading.ExecutionContext.Run(ExecutionContext
>> executionContext, ContextCallback callback, Object state)
>>        at System.Threading.ThreadHelper.ThreadStart()
>>   InnerException: FluentNHibernate.Cfg.FluentConfigurationException
>>        HResult=-2146233088
>>        Message=An invalid or incomplete configuration was used while
>> creating a SessionFactory. Check PotentialReasons collection, and
>> InnerException for more detail.
>>
>>
>>        Source=FluentNHibernate
>>        StackTrace:
>>             at
>> FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
>>             at
>> FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
>>        InnerException: FluentNHibernate.MissingConstructorException
>>             HResult=-2146233088
>>
>> Message='Football.Data.Mappings.Schedulers.AbstractSchedulerMap,
>> Football.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is
>> missing a parameterless constructor.
>>             Source=FluentNHibernate
>>             StackTrace:
>>                  at
>> FluentNHibernate.Utils.Extensions.InstantiateUsingParameterlessConstructor(Type
>> type)
>>                  at FluentNHibernate.PersistenceModel.Add(Type type)
>>                  at
>> FluentNHibernate.Utils.CollectionExtensions.Each[T](IEnumerable`1
>> enumerable, Action`1 each)
>>                  at
>> FluentNHibernate.PersistenceModel.AddMappingsFromSource(ITypeSource source)
>>                  at
>> FluentNHibernate.PersistenceModel.AddMappingsFromAssembly(Assembly assembly)
>>                  at
>> FluentNHibernate.Cfg.FluentMappingsContainer.Apply(PersistenceModel model)
>>                  at
>> FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg)
>>                  at
>> FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
>>             InnerException:
>>
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Fluent NHibernate" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/fluent-nhibernate/7W9BJqh1VsY/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> fluent-nhibernate+unsubscr...@googlegroups.com.
> To post to this group, send email to fluent-nhibernate@googlegroups.com.
> Visit this group at http://groups.google.com/group/fluent-nhibernate.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fluent-nhibernate+unsubscr...@googlegroups.com.
To post to this group, send email to fluent-nhibernate@googlegroups.com.
Visit this group at http://groups.google.com/group/fluent-nhibernate.
For more options, visit https://groups.google.com/d/optout.

Reply via email to