如何阻止Fluent NHibernate自动化在数据库中创建外键?

时间:2013-05-21 02:41:43

标签: nhibernate fluent-nhibernate foreign-keys fluent-nhibernate-mapping automapping

我正在使用最新版本的Fluent NHibernate自动化。是否有任何约定或属性可以设置为停止在所有表中创建外键约束?我有近200个班级,所以我不能去每个班级和属性名称并设置

 ForeignKeyConstraintNames("none", "none") 

如何在Automapping中添加ForeignKeyConstraintNames(“none”,“none”)?我不想硬编码表名或列名。我想让AutoMapping创建没有外键的所有映射。 Basicall不会在数据库中创建任何外键。我们应该怎么做? 有类似的POST HERE,但答案对我来说并不清楚。

1 个答案:

答案 0 :(得分:1)

一个简单的约定

public class NoForeignKeys : IReferenceConvention, IHasManyConvention
{
    public void Apply(IManyToOneInstance instance)
    {
        instance.ForeignKey("none");
    }

    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Key.ForeignKey("none");
    }
}

// use it
AutoMap.AssemblyOf().Conventions
    .FromAssembly() or .Add(typeof(NoForeignKeys))