I've installed NHibernate.3.3.2.4000
via Nuget into my MVC3
project, configured it without a proxyfactory.factory_class
:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect, NHibernate</property>
<property name="connection.connection_string_name">db</property>
<property name="adonet.batch_size">50</property>
<property name="current_session_context_class">web</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<mapping assembly="TheWorkshop.DomainModel" />
</session-factory>
</hibernate-configuration>
but like this I'm getting the following error:
The following types may not be used as proxies: TheWorkshop.DomainModel.Contact: method set_DateAdded should be 'public/protected virtual' or 'protected internal virtual'
Where the DateAdded property privately sets the DateAdded value
public virtual DateTime DateAdded
{
get { return _dateAdded; }
private set { _dateAdded = DateTime.Now; }
}
I don't particularly want to make the setter public, the idea is that the DateAdded is automatically set.
I have seen posts that suggest I could set the proxyfactory.factory_class
to
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle
</property>
but the Nuget install didn't bring down any references to NHibernate.ByteCode.Castle
, when I tried to Install-Package NHibernate.Castle
it failed with
Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'NHibernate'.
At line:1 char:16
+ Install-Package <<<< NHibernate.Castle
+ CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
So I guess I could down version NHibernate, but that seems wrong...
What should I do, a similar question NuGet: NHibernate, Castle.Core 3.0 and where is ProxyFactoryFactory? says I don't need to configure the proxyfactory.factory_class
in newer versions
The last versions of NHibernate do not require configuring a proxy factory.
An internal one is used by default and the old adapters are not part of the project anymore.