zoukankan      html  css  js  c++  java
  • PostgreSQL字段名和表名大小写的问题

    创建表的时候,表名和字段名必须全小写,然后查询的时候不管全大写或全小写,或是Camel模式都不会报错。只要名称中有大写字母,或者全大写,查询时就必须保证大小写正确并用双引号包起来,否则就会报“XXX不存在”的错误:“... does not exist”

    视图、存储过程、索引、外键、触发器之类的命名未测试,不过感觉应该适用于所有对象。

    PS. 这样处理之后,在EntityFramework中的Codefirst代码里Camel写法的属性名在查询的时候又会报“不存在”的错误,需要手动通过[Column("小写名称")]来解决。

    PS. 如果嫌手动设置[Column("小写名称")]太麻烦,也可以像下面这样处理一下modelBuilder的Configure:

     1 protected override void OnModelCreating(DbModelBuilder modelBuilder)
     2 {
     3     Database.SetInitializer<TestDB>(null);
     4     modelBuilder.HasDefaultSchema("public");
     5 
     6     // 处理表名小写
     7     modelBuilder.Types().Configure(c => c.ToTable(c.ClrType.Name.ToLower()));
     8     // 处理字段名小写
     9     modelBuilder.Properties().Configure(c => c.HasColumnName(c.ClrPropertyInfo.Name.ToLower()));
    10 }
  • 相关阅读:
    django 2.0 path
    Django
    ORM
    Django简介
    web框架
    HTTP协议
    web应用
    索引
    pyMysql模块
    视图、触发器、存储过程、函数
  • 原文地址:https://www.cnblogs.com/rangeon/p/7598167.html
Copyright © 2011-2022 走看看