1

ASP.NET MVC 4アプリケーションがあります。Spring.netNhibernate 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をオーバーライドすることを考えていました。それは私にとってもうまくいくでしょうか?トランザクション管理などを壊さないかどうかはわかりません。

この件についての洞察を教えてください。

この状況での最善のアプローチは何ですか?

Spring.Net で Fluent NHibernate を使用する

4

1 に答える 1

1

ここでわかるように、現在Spring .Netではサポートされていません

Marijn の実装を試すことができます。これは何も中断せずに機能するはずです。

于 2014-03-03T05:51:52.217 に答える