我正在将数据库从SQL迁移到postgres。应用程序代码使用实体框架6。我面临着大小写敏感的问题,因为postgres存储表和列的名称都是小写的,除非使用双引号。
postgres中的数据是小写的(表名和列名)。在Entity Framework6中,我遇到了无法找到表名或列名的问题,因为它试图使用Pascal大小写。
我已经搜索并找到了几个链接:Case insensitive name of tables and properties in Entity Framework 7
以上是针对EF7的,大多数解决方案不适用于EF6。我还尝试在OnModelCreating中查找选项,但没有找到任何对DbModelBuilder有用的东西,因为这是传递给OnModelCreating的对象。
我不想更改所有实体以包括表名和列名。我想知道你们中是否有人能帮上忙。
感谢任何人的帮助。
发布于 2020-04-17 07:09:41
看看如何定义一些自定义约定或使用ModelBuilder来标准化案例名称。(参见:https://docs.microsoft.com/en-us/ef/ef6/modeling/code-first/conventions/custom)其他选项是通过attributes/configuraion定义表名和列名。
就我个人而言,对于PostgreSQL,我选择使用PascalCase作为我的表名/列名。这意味着我的手动查询需要使用引号,但坦率地说,我更喜欢在数据库中以这种方式查看命名约定。
https://stackoverflow.com/questions/61256279
复制相似问题