ASP.NET MVC 4アプリケーションがあります。Spring.netとNhibernate 3.2を使用します。構成は xml ファイルによって行われます。
最近、Nhibernate のMapping by Codeの新機能に取り掛かりました。現在のアプリケーションに実装しようとしているので、ClassMapping が構成され、それに応じてスキームが更新されます。
これを達成できず、xml 構成にいくつかの変更を加えました。
これが私のNHibernate構成です
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32">
<property name="MappingAssemblies">
<list>
<value>CM.Data.NHibernate</value>
</list>
</property>
<property name="DbProvider" ref="DbProvider"/>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
<entry key="hbm2ddl.auto" value="update"/>
<entry key="hbm2ddl.keywords" value="auto-quote"/>
<entry key="show_sql" value="true"/>
<entry key="adonet.batch_size" value="0"/>
<entry key="hibernate.current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate32"/>
</dictionary>
</property>
<property name="ExposeTransactionAwareSessionFactory" value="true" />
</object>
サンプル マッピング クラス
namespace CM.Data.NHibernate
{
public class DynamicEntityMap : ClassMapping<DynamicEntity>
{
public DynamicEntityMap()
{
Id(x => x.Id);
}
}
public class DynamicEntity
{
public virtual int Id { get; set; }
}
}
うまくいかないようです。テーブルは生成されません。
何か不足していますか?以下のリンクでFNHに対して行われたように、LocalSessionFactoryObjectをオーバーライドすることを考えていました。それは私にとってもうまくいくでしょうか?トランザクション管理などを壊さないかどうかはわかりません。
この件についての洞察を教えてください。
この状況での最善のアプローチは何ですか?