在LINQ查询中,出现'Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation =' 错误通常是由于数据库中的字符集不一致导致的。

要解决这个问题,可以尝试以下几种方法:

  1. 修改数据库表的字符集:将表的字符集修改为一致的字符集,例如将所有的表都修改为utf8mb4_general_ci或utf8mb4_0900_ai_ci。

  2. 修改连接字符串的字符集:在连接字符串中指定字符集为一致的字符集。例如,在连接字符串中添加charset=utf8mb4_general_ci或charset=utf8mb4_0900_ai_ci参数。

  3. 在LINQ查询中使用COLLATE子句:如果你无法修改数据库表或连接字符串的字符集,你可以在LINQ查询中使用COLLATE子句来指定字符集。例如:

var result = from t in dbContext.TableName
             where t.ColumnName.Equals("value", StringComparison.OrdinalIgnoreCase) COLLATE utf8mb4_general_ci
             select t;

在上述示例中,COLLATE子句将指定比较的字符集为utf8mb4_general_ci。

请根据你的实际情况选择适合的解决方法来解决该错误。

.NET 6 LINQ 查询错误:'Illegal mix of collations...' 解决方法

原文地址: https://www.cveoy.top/t/topic/fb9I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录