2009-05-28 20 views
2

これは私の頭を傷つけるので、私は目の2番目のペアが私をここに助けてくれることを望んでいます。Fluent NHibernate Automappingエラー

セットアップ:私は私のデータ転送のすべてが使用オブジェクトことDomainEntityと呼ばれる基本クラスを持っている

。それは基本的にId(整数)というプロパティだけを定義します。

私はデータ転送オブジェクトを持っている:ブログ、ポストは、ユーザー DomainEntityは、名前空間Core.Domainであり、データ転送オブジェクトはCore.Domain.Model

下にある私は、次のセッションビルダーを持っていますコード:

return Fluently.Configure() 
    .Database(SQLiteConfiguration.Standard.UsingFile("c:\blog.db")) 
    .Mappings(x => x.AutoMappings.Add(
     AutoPersistenceModel.MapEntitiesFromAssemblyOf<Blog>() 
      .Where(type => 
       type.Namespace.EndsWith("Domain.Model") && 
       !type.IsAbstract && 
       type.IsClass && 
       type.GetProperty("Id") != null)  
    )).BuildSessionFactory(); 

私は、単純なクエリをテストしようとすると、私は(どこか)上記のコードでアプリケーション例外を取得し、エラーメッセージは次のとおりです。

System.Applicat ionException:エラー 'Core.Domain.DomainEntity' のマッピング ドキュメントを構築しようとしているとき---> NHibernate.MappingException: は、マッピング・ドキュメントをコンパイルできませんでした: (XmlDocumentオブジェクト)---> System.IndexOutOfRangeException :インデックス が配列の境界の外側にありました。

私のコード/ NHibernateがDomainEntityのマッピングを試みているようですが、失敗しているようです。私は上記のコードがではなく、type.Namespace.EndsWith( "Domain.Model")を使用してそのオブジェクトをマップすることをで明示していると思いました。あれは正しいですか?ここで私はどこに迷いますか?

ありがとうございました。

だから、
.WithSetup(a => a.IsBaseType = type => type == typeof(DomainEntity)) 

、その全体が、私の新しい自動マッピングのコードは次のようになります:

return Fluently.Configure() 
       .Database(SQLiteConfiguration.Standard.UsingFile("c:\\blog.db")) 
       .Mappings(x => x.AutoMappings.Add(
        AutoPersistenceModel.MapEntitiesFromAssemblyOf<Blog>() 
         .WithSetup(a => a.IsBaseType = type => type == typeof(DomainEntity)) 
         .Where(type => 
          type.Namespace.EndsWith("Domain.Model") && 
          !type.IsAbstract && 
          type.IsClass && 
          type.GetProperty("Id") != null) 
        )).BuildSessionFactory(); 

これは右に私のエラーをクリアしているようだ

答えて

3

は、私は次の行を忘れてしまったように見えます。

関連する問題