postgres,数据库不是public时,通过EntityNameService 指定库名时,使用子查询无法使用 返回

SqlSugar
8 196
该叫什么 发布于2021/7/23
悬赏:5 飞吻

```

 EntityNameService = (type, entity) =>

  {

    if (!option.Default)

      {

         entity.DbTableName = option.Name + "." + entity.DbTableName;

       }

  }

```

使用像这样子查询时

 SqlFunc.Subqueryable<FlowAnnex>().Where(x => x.stepid == a.lastid).Any()

会提示这样,无法正确执行
42P01: 关系 \"sche_test.flowannex\" 不存在

热忱回答8

  •    entity.DbTableName ="\""+ option.Name+ "\""+ "." + "\""+"entity.DbTableName+"\"";

       拼的时候把转释符加上试试

    0 回复
  • 晨 VIP0
    1个月前

    @fate stay night:不行,直接就报错了;
    image.png

    0 回复
  • 你是最新版本的吗 我生成的SQL和你不一样

    entity.DbTableName = "public" + "." + entity.DbTableName;

    生成的SQL是这样的

    CREATE TABLE "public"."aaaa1111"(
    "a" varchar(255) NOT NULL   )


    你生成的确是

    "sche_test.flowannex"

    0 回复
  • "sche_test“.”flowannex" 这样才是对的

    0 回复
  • 晨 VIP0
    1个月前

    @fate stay night:这个只有在使用子查询的时候才会出现的问题,版本是最新的,貌似这个问题一值都有

    0 回复
  • 晨 VIP0
    1个月前

    @fate stay night:SqlSugarCore 5.0.3.4

    0 回复
  • @晨:好的明白了

    0 回复
  • 下个版本修复

    0 回复