2013-11-07 2 views
0

Я сначала использую код с миграциями для создания и сохранения изменений в db в синхронизации.Установка Entity Framework FK в значение NULL

Если есть класс Person, который имеет свойство, указывающее на класс FavoriteColor, создаваемая db-схема представляет собой таблицу Person с FK с именем FavoriteColor_Id, которая не является нулевой.

Мне нужно, чтобы в этой колонке разрешалось null, так как у человека может быть или не быть любимый цвет.

Thx

ответ

1

Ok еще раз с доброй ночи спать я пришел работать свежий и был в состоянии решить это в течение нескольких минут.

В основном, что произошло, я ожидал, что я изменю свой класс модели, и для меня будет создан хороший новый файл миграции cs. Не было никаких изменений в классе модели, поскольку EF автоматически генерировал этот FK для меня изначально. Затем я понял, что еще могу запустить add-migration из консоли диспетчера пакетов, и он создаст для меня новый файл, где я могу добавить свой собственный код. Мне также нужно было понять разницу между методом Up() и Down(). Иногда вы принимаете эти вещи как должное, когда все автоматически генерируется для вас.

Вот что решить мою проблему:

public override void Up() 
{ 
    AlterColumn("dbo.Person", "FavoriteColor_Id", c => c.Int(nullable: true)); 
} 
+0

При настройке конфигурации с Fluent API (или декорирования классов с DataAnnotations) изменения будут выбраны, когда вы добавляете новую миграцию. Тогда все, что вам нужно сделать, это вызвать update-database. – Kirby

Смежные вопросы