NHibernate を Visual Foxpro 8.0 に接続したことがある人はいますか? 私はレガシー データ ストアに接続しようとしていますが、すべての ADO.Net を手作業でコーディングするよりも NHibernate を使用したいと考えています。
FoxPro 8 接続用の構成 XML ファイルの例があれば、それは素晴らしいことです。
NHibernate を Visual Foxpro 8.0 に接続したことがある人はいますか? 私はレガシー データ ストアに接続しようとしていますが、すべての ADO.Net を手作業でコーディングするよりも NHibernate を使用したいと考えています。
FoxPro 8 接続用の構成 XML ファイルの例があれば、それは素晴らしいことです。
そして解決策を見つけました:
まず、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>
そして今、すべてが世界で順調です!
完全な XML の例はありませんが、OleDbDriver
withを使用するGenericDialect
ことから始めることができます。
これが私の解決策です:
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"));
}
}