2011-02-08 21 views
0

どのように次のマッピング設定を解決する必要がありますか?C#流暢なnhibernate

public abstract class RepositoryEntity 
{ 
    public virtual int Id { get; set; } 
} 

public class Descriptor : RepositoryEntity 
{ 
    public virtual String Name { get; set; } 
    public virtual DateTime Timestamp { get; set; } 
} 

public class Proxy<TDescriptor> : RepositoryEntity 
{ 
    public virtual TDescriptor Descriptor { get; set; } 
    public virtual Byte[] SerializedValue { get; set; } 
}; 

public class TestUnit : Proxy<Descriptor> 
{ 

}; 

TestUnitマッピングをテストするとき、私は問題を受ける - それは一般的なパラメータで項目をマッピングすることは不可能だと言います。これは、前に指定したクラスからすべてのクラスをマップしようとすると発生します。

Proxy<T>以外のすべてをマップしようとすると、no persister for the 'TestUnit'があることがわかります。

TestUnitProxy<Descriptor>から継承しないと、マッピングテストが正常に動作します


Fluent NHibernateは、いくつかの具体的なClass<T>テンプレートから継承された型を自動マップする可能性がありますか?これらのエンティティのマッピングについて教えてください。

答えて

0

私はFluentとAutoのマッピングの組み合わせを使用しました。

ジェネリックでは流暢なマッピングを使用する必要があります。

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