c# - 如何更改 Fluent NHibernate 对于没有实体的表的默认命名行为?

标签 c# postgresql nhibernate fluent-nhibernate

我们在 SQL Server 中有一个使用 Fluent NhibernateSchemaUpdate 创建的数据库,我想将其数据复制到 Postgres 数据库。

我使用相同的工具来创建数据库,但是每个没有匹配实体(例如元素)的表其名称都是小写的,并且所有列名称都是小写的。

问题是我如何告诉Fluent NHibernate和/或SchemaUpdate使用PascalCase命名约定(如Sql Server)?

最佳答案

您可以使用conventions来实现这一目标。

ConventionBuilder.Class.Always(x => x.Table(x.EntityType.Name.ToLower()))

上面应该允许使用小写字母作为表名称

ConventionBuilder.Class.When(
  c => c.Expect(x.TableName, Is.Not.Set), // when this is true
  x => x.Table(x.EntityType.Name + "Table") // do this
)

上面比较复杂,如果没有设置表名,可以添加后缀。

关于c# - 如何更改 Fluent NHibernate 对于没有实体的表的默认命名行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423952/

相关文章:

c# - 冒号 ':' 错误 - Nhibernate 中未设置所有命名参数?

c# - 如何使用 NHibernate 和 Envers 交换唯一的、排序的列条目?

c# - 从类编辑 MainWindow 上的 ListBox

c# - 高效的纯文本模板引擎

c# - 如何确定线性化 PDF 文件中第 1 页的范围(以字节为单位)?

javascript - 在 GCharts 的 pdf 生成上替代 headless 浏览器

ruby-on-rails - 添加函数和触发器以测试数据库

具有多列通用过滤器的 SQL 查询

java - IS NOT NULL 总是返回真 JPA 查询

c# - 在实体、优点和缺点中仅放置 FK 的键类型 (id) 或类类型