Использование значений по умолчанию EF Core 3.1.2 - PullRequest
0 голосов
/ 11 марта 2020

Сначала я использую EF Core 3.1.2 с базой данных. Я пытаюсь вставить запись в таблицу, которая имеет значения по умолчанию для некоторых столбцов Guid, не обнуляемых. Значения по умолчанию устанавливаются функциями в базе данных. Используя EF, я не устанавливаю никаких значений для этих столбцов, так как они будут установлены сервером SQL. Или, по крайней мере, это было раньше в EF Core 2.2.6. В EF Core 3.1.2 сгенерированные SQL для вставки содержат значения по умолчанию C# для этих столбцов (пустые направляющие), что предотвращает генерирование значений функциями в БД.

Пример: сгенерированный код для столбца со значением по умолчанию выглядит следующим образом:

entity.Property(e => e.IdStatusAnforderung)
                    .HasColumnName("ID_StatusAnforderung")
                    .HasDefaultValueSql("([dbo].[ufn_GetStatusAnforderungID]('New'))");

Так что я не устанавливаю никакого значения в IdStatusAnforderung, так как функция ufn_GetStatusAnforderungID должна установить его. Проблема в том, что EF Core 3.1.2 генерирует вставку sql, которая имеет Guid.Empty для IdStatusAnforderung и ufn_GetStatusAnforderungID не вызывается.

Есть ли изменение торможения, связанное со значениями по умолчанию, и как я могу это исправить?

...