创建表的时候,表名和字段名必须全小写,然后查询的时候不管全大写或全小写,或是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 }

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2022-02-05
  • 2022-12-23
  • 2022-03-02
  • 2022-12-23
猜你喜欢
  • 2021-06-15
  • 2022-12-23
  • 2022-01-24
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
  • 2021-05-24
相关资源
相似解决方案