FluentNHibernate - ClassMap与IAutoMappingOverride

Fit*_*aki 5 nhibernate-mapping fluent-nhibernate

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


public class PostMap : ClassMap<Post>
{
    public PostMap()
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

VS

public class PostMap : IAutoMappingOverride<Post>
{
    public void Override(AutoMapping<Post> mapping) 
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ebo 12

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

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

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