FluentNHibernate - ClassMap与IAutoMappingOverride

时间:2010-04-25 04:47:36

标签: fluent-nhibernate nhibernate-mapping

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


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

VS

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

1 个答案:

答案 0 :(得分:12)

手动映射实体时使用

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

使用AutoMapping映射实体时使用

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

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