2011-02-08 5 views
0

NHibernateの設定が流暢に設定されていて、Fluent mappingsAutomappingsの両方を使用しているとします。今C#NHibernateのマッピング

 Configuration = Fluently.Configure() 
      .Database(SQLiteConfiguration.Standard.ShowSql().InMemory) 
      .Mappings(x => 
         { 
          x.FluentMappings.AddFromAssemblyOf<RepositoryEntity>(); 
          x.AutoMappings.Add(autoPersistenceModel); 
         }); 

- それは、この構成にいくつかの任意のタイプTがマッピングされた(またはマップされていない)されていることを確認することは可能でしょうか?

私はいくつかの弾丸レポジトリを作成しようとしていますが、私はこの瞬間が重要だと思います。

はあなたに

答えて

4

はいありがとうございました。あなたのSessionFactoryを作成した後、周辺の構成を維持し、あなたのリポジトリにこの方法を設定します。

public bool IsMapped (Type testType) 
{ 
    return MyConfiguration.ClassMappings.Any(m => m.EntityName == testType.FullName); 
} 

は、私の知る限り、これはfluently-とXMLマッピングされた両方のクラスを検出するために使用することができます。同じ名前のクラスを別の名前空間に置いている場合は、より詳細に比較する必要があるかもしれませんが、これは開始する必要があります。

リポジトリに与えられたエンティティをマッピングする必要のないエンティティを扱うためのカスタムメソッドを定義することを可能にするEntityNotFoundDelegateは、「防弾性のある」Repoを開発する際に使用できることもあります。エンティティを処理できるかどうかを別のリポジトリに尋ねたり、試してみる可能性のあるいくつかのレポジトリを持つストラテジパターンに戻すことができます。

関連する問題