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

Если я не наследую TestUnit от Proxy<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); 
         }); 
Смежные вопросы