2015-07-28 2 views
1

В моем AppHost.cs, я создаю OrmLiteConnectionFactory с помощью SqlServerDialect.Provider:ServiceStack OrmLite SUBSTRING() Неверно для SqlServerDialect?

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 "Неправильный синтаксис около ключевого слова 'от'." Трассировка показывает, что запрос

SELECT DISTINCT substring("LastName" from 1 for 1) FROM "Employee" 

, который не является правильным синтаксисом функции SUBSTRING SQL Server (выглядит как MySQL и другие).

Я что-то упустил?

Спасибо!

Jay

ответ

1

OrmLite использует формат SQL-92 standard подстроки, которая поддерживается большинством РСУБД.

Поддержка SQL-серверов Substring() только что добавлен синтаксис in this commit.

Это изменение можно получить из версии 4.0.43 +, теперь это available on MyGet.

+0

Удивительная поддержка как обычно - и отличная каркас! Благодаря! – jaybird