Как изменить пустую строку на ненулевое int в Entity Framework 2 Core? - PullRequest
0 голосов
/ 05 декабря 2018

Это коротко: я по ошибке установил свойство string, когда оно должно было быть int.Нет никаких ограничений, так как это int может быть необязательным.Несмотря на то, что я мог бы сделать int nullable, у меня скорее было бы значение по умолчанию ноль.

Затем, когда я пытаюсь запустить миграцию:

Невозможно вставить значение NULL в столбец 'Edad ', таблица' EduPlaTools.dbo.Profesor ';столбец не допускает пустых значений.ОБНОВЛЕНИЕ не удается.Утверждение было прекращено.

Что имеет смысл.Он обновляет поля, и, поскольку многие поля имеют значение «NULL», оно вставляется.Есть ли способ автоматически отобразить эти NULL в нули?Или мне нужно сделать SQL-оператор?

Вот кодigrationBuilder:

   migrationBuilder.AlterColumn<int>(
                name: "Edad",
                table: "Profesor",
                nullable: false,
                oldClrType: typeof(string),
                oldNullable: true);

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

О нет.Мне нужно извиниться.Настолько глупо, что не понял этого, Entity Framework, очевидно, создал другие таблицы с похожим свойством Profesor, хотя на самом деле это было Estudiante, которое требовало изменения.

        migrationBuilder.AlterColumn<int>(
            name: "Edad",
            table: "Estudiante",
            nullable: false,
            oldClrType: typeof(string),
            oldNullable: true,
            defaultValue: 0);

Теперь все работает!Спасибо всем!

0 голосов
/ 05 декабря 2018

Если вы пытаетесь изменить тип столбца, и в вашей таблице уже есть записи, для этих записей должно быть указано значение для каждого из новых столбцов.Если вы не указали значение по умолчанию для столбца, база данных попытается использовать NULL, что приведет к ошибке, так как столбец не допускает пустых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...