在FluentNHibernate中,何时应为我的EntityMap类使用ClassMap,何时应使用IAutoMappingOverride<Entity>

public class PostMap : ClassMap<Post>
{
    public PostMap()
    {
        ...
    }
}


public class PostMap : IAutoMappingOverride<Post>
{
    public void Override(AutoMapping<Post> mapping)
    {
        ...
    }
}

最佳答案

手动映射实体时使用ClassMaps 。在这种情况下,您将为每个实体创建一个单独的ClassMap,以指定该实体如何映射到数据库。

IAutoMappingOverrides 用于在使用AutoMapping映射实体时使用。使用自动映射时,Fluent NHibernate会尝试自动找出应如何将实体映射到数据库,但是有时自动生成的映射并不是您想要的,因此您必须覆盖需要调整的部分。在这种情况下,您将为每个需要覆盖自动映射的实体创建一个映射覆盖,并且仅覆盖那些部分。

可以在Fluent NHibernate Wiki上找到更多信息:

  • AutoMapping
  • Fluent Mapping (ClassMaps)
  • 关于fluent-nhibernate - FluentNHibernate-ClassMap与IAutoMappingOverride,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2707188/

    10-12 12:42