Да.После создания SessionFactory сохраните конфигурацию и настройте этот метод в своем репозитории:
public bool IsMapped (Type testType)
{
return MyConfiguration.ClassMappings.Any(m => m.EntityName == testType.FullName);
}
AFAIK. Его можно использовать для обнаружения классов, отображаемых как на языке XML, так и на языке XML.Вам может потребоваться более точное сравнение, если у вас есть классы с одинаковыми именами в разных пространствах имен, но это должно помочь вам начать.
Что-то, что вы также можете использовать при разработке «пуленепробиваемого» репо - EntityNotFoundDelegate,который позволяет вам определить пользовательский метод для работы с сущностями, предоставленными хранилищу, для которого у него нет сопоставления.Вы можете, потенциально, использовать это, чтобы спросить другой репозиторий, может ли он обрабатывать сущность, или отправить его обратно в шаблон Стратегии, который может иметь несколько возможных репо для попытки.