ServiceStack OrmLite SUBSTRING() 对于 SqlServerDialect 不正确?
ServiceStack OrmLite SUBSTRING() Incorrect for SqlServerDialect?
在我的 AppHost.cs 中,我正在使用 SqlServerDialect.Provider:
创建一个 OrmLiteConnectionFactory
OrmLiteConnectionFactory connectionFactory = new OrmLiteConnectionFactory(
ConfigurationManager.ConnectionStrings["Key"].ConnectionString, SqlServerDialect.Provider
);
我正在创建一个 SqlExpression 来获取员工姓氏首字母的 DISTINCT 列表(不要问...)。
SqlExpression<Employee> sql = db.From<Employee>().SelectDistinct(e => e.LastName.Substring(0,1));
当我运行这个用
db.Select(sql)
我得到一个 SqlException "Incorrect syntax near the keyword 'from'." 跟踪显示查询是
SELECT DISTINCT substring("LastName" from 1 for 1) FROM "Employee"
这不是 SQL 服务器 SUBSTRING 函数的正确语法(看起来像 MySQL 和其他函数)。
我是不是漏掉了什么?
谢谢!
周杰伦
OrmLite 使用大多数 RDBMS 支持的 SQL-92 standard 子字符串格式。
刚刚添加了对 SQL 服务器 Substring()
语法的支持 in this commit。
此更改适用于 v4.0.43+,即现在 available on MyGet。
在我的 AppHost.cs 中,我正在使用 SqlServerDialect.Provider:
创建一个 OrmLiteConnectionFactoryOrmLiteConnectionFactory connectionFactory = new OrmLiteConnectionFactory(
ConfigurationManager.ConnectionStrings["Key"].ConnectionString, SqlServerDialect.Provider
);
我正在创建一个 SqlExpression 来获取员工姓氏首字母的 DISTINCT 列表(不要问...)。
SqlExpression<Employee> sql = db.From<Employee>().SelectDistinct(e => e.LastName.Substring(0,1));
当我运行这个用
db.Select(sql)
我得到一个 SqlException "Incorrect syntax near the keyword 'from'." 跟踪显示查询是
SELECT DISTINCT substring("LastName" from 1 for 1) FROM "Employee"
这不是 SQL 服务器 SUBSTRING 函数的正确语法(看起来像 MySQL 和其他函数)。
我是不是漏掉了什么?
谢谢!
周杰伦
OrmLite 使用大多数 RDBMS 支持的 SQL-92 standard 子字符串格式。
刚刚添加了对 SQL 服务器 Substring()
语法的支持 in this commit。
此更改适用于 v4.0.43+,即现在 available on MyGet。