2011-02-08 83 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); 
         });