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

发布于 2024-11-16 03:32:46 字数 232 浏览 2 评论 0原文

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

该约定

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

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

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

Is there a simple way to prefix all generated table names with a string?

The convention

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

only works for Entity tables (doesn't function for join or subclass tables)

I can't seem to find a simple way to have every single table that nhibernate creates be prefixed with a specific string without first identifying all the cases that would create a table and specifying a rule per case. Ew!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

超可爱的懒熊 2024-11-23 03:32:46

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

for this you have to implement IHasManyToManyConvention and IJoinedSubclassConvention see

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文