我正在将数据库从SQL迁移到postgres。应用程序代码使用实体框架6。我面临着区分大小写的问题,因为postgres将表、列名存储为小写,除非使用双引号。
postgres中的数据是小写的(表名和列名(。对于Entity框架6,我面临着无法找到表或列名的问题,因为它试图使用Pascal案例。
我搜索了几个链接:实体框架7 中不区分大小写的表和属性名称
以上内容适用于EF7,大多数解决方案不适用于EF6。我也试着在OnModelCreating中寻找选项,但没有发现DbModelBuilder有任何用处,因为这是传递给OnModelCreatiing的对象。
我不想更改所有实体以包括表名和列名。我想知道你们中是否有人能帮上忙。
感谢您的帮助。
看看定义一些自定义约定或使用ModelBuilder来标准化案例名称。(请参见:https://learn.microsoft.com/en-us/ef/ef6/modeling/code-first/conventions/custom)其他选项是通过属性/configuration定义表和列名。
就我个人而言,在PostgreSQL中,我选择使用PascalCase作为表/列名。这意味着我的手动查询需要使用引号,但坦率地说,我更愿意在数据库中以这种方式查看命名约定。