gpt4 book ai didi

c# - Fluent NHibernate - 从映射覆盖表名

转载 作者:行者123 更新时间:2023-11-30 18:31:55 26 4
gpt4 key购买 nike

我正在使用 Fluent NHibernate 来映射我的 NHibernate 模型。

现在我遇到了这个问题,我想在我的所有表格前加上下划线在某些情况下。所以我不能只更改映射中的 Table(...) 定义,我必须从外部进行。

到目前为止我得到了什么:

型号:

class Foo
{
public virtual int Id { get; set; }
}

class FooMapping : ClassMap<Foo>
{
Table("foo_table");

Id(x => x.Id).Column("foo_id");
}

在我的 Controller 中的某处:

/*...*/
if (yourehappyandyouknowit)
{
Fluently.Configure()
/*...*/
.Conventions.Add(Table.Is(x => "_" + x.TableName));
/*...*/
}

这总是输出“foo_table”而不是“_foo_table”。

当我注释掉 Table(...) 定义时,它就像一个魅力...但我需要有 Table(...) 在映射中设置。

最佳答案

只要你定义

Table("foo_table");

您必须更新所有这些位置并向其添加您的前缀。最好使用在某处定义的常量值,如果您必须再次更改它,它都在一个地方......

public const string TABLE_PREFIX = "_";

然后使用它

Table(TABLE_PREFIX + "foo_table");

要轻松重构,只需在所有文件中搜索 Table(" 并将其替换为 Table(TABLE_PREFIX + "...

关于c# - Fluent NHibernate - 从映射覆盖表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19317617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com