SqlServer增加全局NoLock配置后查询出现异常 返回

C#论坛 老数据
12 2101
该叫什么 发布于2020/12/8
悬赏:5 飞吻

一般的查询是没有什么问题的

但是如果是使用两个queryable查询的时候就会出现异常


 var houseInfolist = db.Queryable(houseQuery, query, (a, b) => a.seatID == b.seatId)

                .Select((a, b) => a.id).ToList();


System.Data.SqlClient.SqlException:“必须声明标量变量 "@del0"。

关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

必须声明标量变量 "@del0"。

关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

必须声明标量变量 "@Const4"。

关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。”


去掉全局配置后正常



热忱回答12

  • 银 VIP0
    2020/12/8

    环境:.net core 3.1

    版本:5.0.1.2


    测试了下更新到5.0.1.5也是不行

    0 回复
  • 加上这个呢  db.Queryable(houseQuery, query, (a, b) => a.seatID == b.seatId).With(SqlWith.Null)

    0 回复
  • 全局的一定要加上 .With(SqlWith.Null)

    0 回复
  • 这样就不会走全局或才 With(null)

    0 回复
  • 银 VIP0
    2020/12/8

    @fate stay night:增加 .With(SqlWith.Null)后异常变成System.Data.SqlClient.SqlException:““NonON”附近有语法错误。”

    0 回复
  • 增加 With(null)试试 

    0 回复
  • 银 VIP0
    2020/12/9

    @fate stay night:增加 With(null)后异常

    System.Data.SqlClient.SqlException:“关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

    “b”附近有语法错误。

    关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。”


    0 回复
  • 银 VIP0
    2020/12/9

    @fate stay night:应该是两个queryable查询的时候没有兼容全局配置的nolock导致出现的异常

    0 回复
  • With(空格字符串)看看

    0 回复
  • 银 VIP0
    2020/12/9

    @fate stay night:.With(" ")可以了,但是这样处理感觉有些奇怪,希望可以兼容下不用加With(" ")也可以

    0 回复
  • @银:你先这样用,后面优化

    0 回复
  • 银 VIP0
    2020/12/9

    @fate stay night:好的

    0 回复