Я работаю над улучшением приложения и использую Microsoft .NET Core Identity для IAM в нашем приложении [Microsoft.AspNetCore.Identity.EntityFrameworkCore].
База данных - Microsoft SQL Server. Настройка базы данных в значительной степени стандартная, за исключением того, что NUMERIC_ROUNDABORT будет включен.
Но когда мы запускаем приложение, мы получаем следующее исключение.
System.Data.SqlClient.SqlException:
«CREATE INDEX не выполнен, поскольку следующие параметры SET имеют неправильные настройки:« NUMERIC_ROUNDABORT ».
Убедитесь, что параметры SET верны для использования с индексированными представлениями и / или индексами для вычисляемых столбцов и / или отфильтрованных индексов и / или уведомлений о запросах и / или типа данных XML
Рабочие сценарии:
Сценарий 1: когда «NUMERIC_ROUNDABORT» выключен на уровне сервера, приложение работает нормально и никаких проблем.
Сценарий 2. Когда я извлекаю запросы на создание таблицы из базы данных и выполняю их с включенным параметром «NUMERIC_ROUNDABORT», все равно все работает.
Сценарий 3: когда «NUMERIC_ROUNDABORT» выключен на уровне сервера, запущено приложение в первый раз (с разрешением всех таблиц, созданных ef core) и включено, в следующий раз приложение будет работать, так как необходимые таблицы и индексы уже создан.
Неработающий сценарий:
Когда «NUMERIC_ROUNDABORT» включен на уровне сервера и когда мы запускаем приложение в первый раз, оно выдает исключение.
Я понимаю причину, по которой ожидается получение исключения после потери точности в выражении и при создании или изменении индексов для вычисляемых столбцов или индексированных представлений.
Не могли бы вы помочь мне, мы можем это исправить программно. Это возможно?
P.S .: Изменение в базе данных не будет возможным вариантом [В моем случае].
Спасибо всем за советы и помощь.