将字符串添加到所有生成的表名称 - FluentNHibernate

时间:2011-06-17 19:38:59

标签: nhibernate fluent-nhibernate

是否有一种简单的方法可以使用字符串为所有生成的表名添加前缀?

惯例

Table.Is(x => "Prefix" + x.EntityType.Name)

仅适用于Entity表(不适用于连接表或子类表)

我似乎无法找到一种简单的方法,让nhibernate创建的每个表都以特定字符串为前缀,而不首先识别将创建表并为每个案例指定规则的所有情况。 EW!

1 个答案:

答案 0 :(得分:1)

为此,您必须实施IHasManyToManyConventionIJoinedSubclassConvention,请参阅

public class SubclassConvention : IJoinedSubclassConvention, IHasManyToManyConvention
{
    public void Apply(IJoinedSubclassInstance instance)
    {
        instance.Table("Prefix" + instance.Type.Name);
    }

    public void Apply(IManyToManyCollectionInstance instance)
    {
        instance.Table("Prefix" + instance.TableName);
    }
}