Использование 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 '?