Преобразования Linq в SQL делают все строковые литералы Unicode независимо от мета-описания столбцов. - PullRequest
0 голосов
/ 10 октября 2019

Использование Entity Framework в проекте .Net-Core с поставщиком Oracle.EntityFrameworkCore 2.19.30 Преобразования Linq в SQL делают все строковые литералы Unicode независимо от мета-описания столбцов.

Это проблема для нас, поскольку нам нужно избегать приведения типов из varchar к nvarchar.

Мы провели обратный инжиниринг OracleStringTypeMapping.cs и нашли метод:

protected override string GenerateNonNullSqlLiteral(object value)
{
  if (string.IsNullOrEmpty((string) value))
    return "NULL";
  if (!this.IsUnicode)
    return "'" + this.EscapeSqlLiteral((string) value) + "'";
  return "N'" + this.EscapeSqlLiteral((string) value) + "'";
}

По умолчанию для свойства IsUnicode установлено значение false, но нам не удалось найти место, в котором для этого свойства установлено значение true. ,

Может кто-нибудь предложить обходной путь, чтобы установить для этого параметра IsUnicode значение false, чтобы он генерировал "где SomeCloumn = 'some value'" без N '?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...