所有生成表名的前缀字符串-FluentNHibernate

所有生成表名的前缀字符串-FluentNHibernate,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,是否有一种简单的方法可以在所有生成的表名前加上字符串前缀 公约 Table.Is(x => "Prefix" + x.EntityType.Name) 仅适用于实体表(不适用于联接表或子类表) 我似乎找不到一种简单的方法,可以让nhibernate创建的每个表都以特定字符串作为前缀,而不首先标识将创建表的所有案例并为每个案例指定规则。哎哟! 为此,您必须执行IHasManyToManyConvention和i联合子条款约定请参见 public class SubclassConventi

是否有一种简单的方法可以在所有生成的表名前加上字符串前缀

公约

Table.Is(x => "Prefix" + x.EntityType.Name)
仅适用于实体表(不适用于联接表或子类表)


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

为此,您必须执行
IHasManyToManyConvention
i联合子条款约定
请参见

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);
    }
}

那么,您必须为每个创建表的对象实现约定吗?完整的列表将是实体、子类和多对多?@mushinoshin。。。和价值收藏。我还没有找到任何其他的方式来接受这句话,因为“你不能用一种过于简单的方式去做”。不幸的;我讨厌打字。@OnurGazioğlu对不起,你说得对。我做了一个复制粘贴错误。它在我写的地方起作用,但在我把它复制回来的时候就不起作用了。FNH 1.3测试仪