По умолчанию опция SQL-соединения ARITHABORT отключена для OLEDB-соединений, которые, как я предполагаю, использует Linq To SQL. Однако мне нужно, чтобы он был включен. Причина в том, что моя БД содержит некоторые индексированные представления, и любые операции вставки / обновления / удаления для таблиц, которые являются частью индексированного представления, завершаются неудачно, если для соединения не установлено ARITHABORT ON. Даже выбор в отношении самого индексированного представления завершится неудачно, если используется подсказка WITH (NOEXPAND) (которую необходимо использовать в SQL Standard Edition, чтобы получить выигрыш в производительности индексированного представления).
Есть ли где-то в контексте данных, который я могу указать, я хочу, чтобы эта опция была включена? Или где-то в коде я могу это сделать ??
Я справился с неуклюжим обходным решением, но мне это не нравится .... Мне нужно создать хранимую процедуру для каждой операции выбора / вставки / обновления / удаления, и в этом процессе сначала запустите SET ARITHABORT ON, затем exec другой процесс, который содержит фактический выбор / вставка / обновление / удаление. Другими словами, первый процесс - это просто обертка для второго. Не получается просто установить SET ARITHABORT ON над кодом выбора / вставки / обновления / удаления.