3

NHibernate を Visual Foxpro 8.0 に接続したことがある人はいますか? 私はレガシー データ ストアに接続しようとしていますが、すべての ADO.Net を手作業でコーディングするよりも NHibernate を使用したいと考えています。

FoxPro 8 接続用の構成 XML ファイルの例があれば、それは素晴らしいことです。

4

3 に答える 3

4

そして解決策を見つけました:

まず、Visual FoxProドライバーを入手する必要がありました(これらは9.0ですが、8.0で動作することができました)。

次に、NHibernateの設定を次のように設定する必要がありました。このプロジェクトでは、私はディレクトリベースなので、すべての* .dbfファイルを含むC:\ Temp \VisualFox\というディレクトリがあります。

  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <reflection-optimizer use="false" />
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.GenericDialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OleDbDriver</property>
      <property name="connection.connection_string">Provider=VFPOLEDB;Data Source=C:\Temp\VisualFox;Collating Sequence=general</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
      <property name="show_sql">false</property>
    </session-factory>
  </hibernate-configuration>

そして今、すべてが世界で順調です!

于 2010-11-12T12:55:14.457 に答える
1

完全な XML の例はありませんが、OleDbDriverwithを使用するGenericDialectことから始めることができます。

于 2010-11-05T14:59:08.600 に答える
1

これが私の解決策です:

var connectionString = @"Provider=VFPOLEDB.1;Data Source={0};CodePage=850".FormatWith(directory);

var cfg = new Configuration()
    .DataBaseIntegration(c =>
    {
        c.Dialect<GenericDialect>();
        c.ConnectionString = connectionString;
        c.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
        c.BatchSize = 100;
        c.Driver<OleDbDriver>();
    });

cfg.AddMapping(GetMappings());

および構成マップ:

public class MyClassMap: ClassMapping<MyClass>
{
    public MyClassMap(string filename)
    {
        Table("[" + filename + "]");
        Id(e => e.LineNo, m => m.Column("Line_No"));
    }
}
于 2012-03-28T22:54:50.027 に答える