Как установить прерывание числового раунда в Entity Framework - PullRequest
0 голосов
/ 02 мая 2018

Я работаю над улучшением приложения и использую 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 .: Изменение в базе данных не будет возможным вариантом [В моем случае].

Спасибо всем за советы и помощь.

...