[Linq2Db] Как заставить linq2db генерировать строки типа varchar, а не nvarchar
От: Петрухин Эдуард Россия  
Дата: 18.06.19 10:57
Оценка:
Версия linq2db 2.7.4, СУБД — MS SQL Server 2017.

При использовании функции STRING_AGG (LinqToDB.Sql.StringAggregate) SQL Server выдаёт ошибку «Argument data type nvarchar is invalid for argument 2 of string_agg function».
В C# коде передаю в функцию строку ", " в качестве разделителя, а агрегируются значения из столбца таблицы с типом данных varchar.
Linq2Db преобразует разделитель ", " в nvarchar строку N', '. А это не нравится функции STRING_AGG, потому что «If the input expression is type VARCHAR, the separator cannot be type NVARCHAR» ().

Вопрос: можно как-то заставить linq2db генерировать varchar строку, без префикса N?
Попытка обернуть ", " с помощью функции LinqToDB.Sql.AsSql не помогла.
Понятно, что можно сконвертировать строку в varchar (Sql.Convert(Sql.DefaultVarChar, ", ")), но это как-то совсем не хочеться делать.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.