В FluentNHibernate, когда должен, я использую ClassMap
и когда IAutoMappingOverride<Entity>
для моих классов EntityMap.
public class PostMap : ClassMap<Post>
{
public PostMap()
{
...
}
}
по сравнению с
public class PostMap : IAutoMappingOverride<Post>
{
public void Override(AutoMapping<Post> mapping)
{
...
}
}
Карты классов используются при сопоставлении объектов вручную. В этом случае вы создаете отдельную ClassMap для каждой сущности, которая определяет, как эта сущность отображается в базе данных.
IAutoMappingOverrides используются при отображении объектов с помощью AutoMapping. При использовании AutoMapping Fluent NHibernate пытается автоматически определить, как объекты должны быть сопоставлены с базой данных, но иногда автоматически сгенерированные сопоставления не совсем то, что вы хотели, поэтому вам нужно переопределить части, которые нужно настроить. В этом случае вы создаете переопределение сопоставления для каждой сущности, автоматическое сопоставление которой необходимо переопределить, и переопределяете только эти части.
Дополнительную информацию можно найти на вики-странице Fluent NHibernate: