0

この質問は以前に尋ねられましたが、答えはすべて、fluentnhibernateからhbmファイルをエクスポートする方法を示しています。流暢に包むS#arpArchitectureを使用しています。スキーマをエクスポートすることはできますが、本当に必要なのは、エラーのトラブルシューティングを行うためのxmlファイルです。以前にFNHを使用してこれを行ったことがありますが、ミックスにS#arpを追加すると、理解できない複雑なことが起こります。

この質問はいくつかのフォーラムで尋ねられましたが、マッピングファイルの取得方法を示す質問が見つかりません。

4

3 に答える 3

4

これが私のプロジェクトの1つでそれを行う方法です:

[TestMethod]
    public void CreateSchema()
    {
        var mappingOutput = ConfigurationManager.AppSettings["xmlMappingOutputDirectory"];
        var sqlOutput = ConfigurationManager.AppSettings["sqlOutputDirectory"];

        Configuration cfg = new Configuration().Configure();
        var persistenceModel = new PersistenceModel();
        persistenceModel.AddMappingsFromAssembly(Assembly.Load("ProjectName.Data"));
        persistenceModel.Configure(cfg);
        persistenceModel.WriteMappingsTo(mappingOutput);
        new SchemaExport(cfg).SetOutputFile(sqlOutput).Create(true, false);
    }

アプリの設定で2つのキーを設定するか、それらに直接値を指定する必要があります。

于 2010-07-25T00:41:18.960 に答える
0

http://wiki.fluentnhibernate.org/Fluent_configuration#Exporting_mappings

Mappings呼び出しでは、次のことを実行できます。

.Mappings(m =>
{
  m.FluentMappings
    .AddFromAssemblyOf<YourEntity>()
    .ExportTo(@"C:\your\export\path");

  m.AutoMappings
    .Add(/* ... */)
    .ExportTo(@"C:\your\export\path");
})
于 2011-02-14T09:37:44.923 に答える
0

結局のところ、自動マッピングを使用していない場合にのみ機能します。自動マッピングを使用している場合の解決策は次のとおりです。

public void CanGenerateMappingFiles() 
{ 
    DirectoryInfo directoryInfo = new DirectoryInfo("../../../../db/mappings"); 

    if (!directoryInfo.Exists) 
        directoryInfo.Create(); 

    Configuration cfg = new Configuration().Configure();  
    var autoPersistenceodel = new AutoPersistenceModelGenerator().Generate(); 

    autoPersistenceodel.Configure(cfg); 
    autoPersistenceodel.AddMappingsFromAssembly(Assembly.Load("TrackerI9.Data")); 
    autoPersistenceodel.WriteMappingsTo(directoryInfo.FullName); 
} 

構成が正しく設定されていることと、ディレクトリに適切な場所を選択していることを確認する必要がありますが、それ以外の場合は機能するはずです。それは私のためになりました。

于 2012-06-08T16:24:39.927 に答える