1

PostgreSQLをDBとして使用sprig.netして、と組み合わせようとしています。ASP.NET MVC3私は以前にMySQLでこれを行うことに成功しました。これが私の2つの設定ファイルです:

1)web.config:

<configuration>
<configSections>
<sectionGroup name="spring">
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler,     Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" />
</sectionGroup>
</configSections>
<!-- spring context -->
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
</parsers>
<context>
<resource uri="~/spring-dao.xml" />
</context>
</spring>
....

2)spring-dao.xml(MySQL DB用)は次のとおりです。

 <db:provider id="DbProvider" provider="MySql.Data.MySqlClient"
 ConnectionString="Server=localhost;Database=db_movies;Uid=root;Pwd=1234;"/>
 <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject,
 Spring.Data.NHibernate32">
 <property name="DbProvider" ref="DbProvider"/> ...

注意:Npgsql.dllを参照しました。

<db:provider .../>別の.DLLが必要ですか?Postgresをプロバイダーとして使用するようにを変更するにはどうすればよいですか?

グーグルで例やチュートリアルを探しましたが、見つかりませんでした。

4

1 に答える 1

1

Spring.Net 1.3.2 の NHibernate32 と Npgsql-2.0 (2.0.11.92) の動作構成を以下に示します。

<db:provider id="PqSqlDbProvider" provider="Npgsql-2.0" connectionString="Server=localhost;Port=5432;User Id=nhibernate;Password=123456789;Database=Xxxxxxxx;" />

<object name="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32" dependency-check="none">
  <property name="DbProvider" ref="PqSqlDbProvider"/>
  <property name="ExposeTransactionAwareSessionFactory" value="true" />
  <property name="MappingAssemblies">
    <list>
      <value>Xxxxxxxx</value>
    </list>
  </property>

  <property
    name="HibernateProperties">
    <dictionary>        
      <entry key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
      <entry key="connection.driver_class" value="NHibernate.Driver.NpgsqlDriver" />
      <entry key="dialect" value="NHibernate.Dialect.PostgreSQLDialect" />
      <entry key="hbm2ddl.auto" value="create-drop"/>
    </dictionary>
  </property>
</object>

<object
  name="HibernateTransactionManager"
  type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32"
  dependency-check="none">
  <property name="DbProvider" ref="PqSqlDbProvider"/>
  <property name="SessionFactory" ref="SessionFactory"/>
</object>

<!-- Attribute driven transaction manager. -->
<tx:attribute-driven transaction-manager="HibernateTransactionManager"/>

web.configまた、Spring によって参照されるものではなく、適切な .dll をロードするように修正する必要があります。

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="2.0.11.92" />
    </dependentAssembly>      
  </assemblyBinding>
</runtime>
于 2012-12-27T15:15:03.533 に答える