FluentMigrator Postgres(Npgsql)引用

问题描述 投票:1回答:2

如果在postgres中使用fluentmigrator,它会生成这样的代码

CREATE TABLE public."Sample"...

因此,我必须为每个序列使用双引号

SELECT * FROM public.Sample <--- Error
SELECT * FROM public."Sample" <--- OK

我怎么能关掉双引号?

更多信息描述qazxsw poi

postgresql double-quotes npgsql fluent-migrator
2个回答
2
投票

我自己看过这个问题,问题是FluentMigrator的引号基本上是硬编码的.....根据当前版本。

唯一的方法是自己下载和修改源代码。

它非常好,你需要查看PostgresQuoter.cs类,并覆盖一些基本的引用方法。

我没有完全修改整个项目,只在第一次通过时工作,并希望在本周晚些时候完成其余的更改。如果它不是太hacky我会看到是否不能给你修改文件。


0
投票

如果您不是一直使用小写,这实际上只是一个问题。 Postgres区分大小写。 Postgresql在没有引用的情况下对标识符不区分大小写(它实际上将它们在内部折叠为小写),并且在引用时区分大小写。使用小写字母是安全的。但是,如果您使用的是camelCase或PascalCase,则意味着您始终需要保持一致:始终或永远引用标识符。

重申,如果您使用小写作为约定命名事物,则不会出现双引号问题。如果你使用大写,你会遇到双引号问题。希望这可以帮助。祝你的项目好运。 :)

© www.soinside.com 2019 - 2024. All rights reserved.