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

标签 nhibernate fluent-nhibernate

有没有一种简单的方法为所有生成的表名加上字符串前缀?

惯例

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


仅适用于实体表(不适用于联接表或子类表)

我似乎找不到一种简单的方法来让nhibernate创建的每个表都带有特定的字符串作为前缀,而无需先识别所有会创建表的情况并为每个情况指定一个规则。 w!

最佳答案

为此,您必须实现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);
    }
}

关于nhibernate - 所有生成的表名的前缀字符串-FluentNHibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390918/

相关文章:

nhibernate - 如何使用 Fluent NHibernate 创建聚集索引?

nhibernate - 如何配置NHibernate Facilities?

nhibernate - EF4 与 NHibernate 相比如何?

fluent-nhibernate - 使用 fluent-nhibernate 是否可以在实体内自动映射值对象?

c# - 使基于 Nhibernate 的 DAL 混淆变得友好

nhibernate - 使用NHibernate 3.0.0时要对抗笛卡尔乘积(x-join)

C#:将子项添加到集合并在同一调用中设置子项的父项

fluent-nhibernate - 流畅的 nhibernate 编码设置

c# - 将 Linq 设置为 NHibernate ADO 命令超时

c# - 如何在 NHibernate 中使用枚举?