2011-02-08 518 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'

如果我停止從Proxy<Descriptor>繼承TestUnit,映射測試正常工作


是否Fluent NHibernate有可能性自動映射從一些具體的Class<T>模板繼承類型?你能幫我繪製這些實體嗎?

回答

0

我用流利的和自動映射的組合。

流利的映射應該用於仿製藥。

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