0

我首先使用代码和迁移来构建和保持对数据库的更改同步。

如果有一个类 Person 具有指向类 FavoriteColor 的属性,则创建的 db 模式是一个 Person 表,其中包含一个名为 FavoriteColor_Id 的 FK,它是不可为空的。

我需要让该列允许空值,因为 Person 可能有也可能没有最喜欢的颜色。

谢谢

4

1 回答 1

1

好吧,我又睡了个好觉,我重新开始工作,并能够在几分钟内解决这个问题。

基本上发生的事情是我期望我会更改我的模型类,并且会为我生成一个不错的新迁移 cs 文件。由于 EF 最初为我自动生成了这个 FK,因此对模型类没有任何更改。然后我意识到我仍然可以从包管理器控制台运行 add-migration,它会为我创建一个新文件,我可以在其中添加自己的代码。我还需要了解 Up() 和 Down() 方法之间的区别。有时,当一切都是为您自动生成时,您会认为这些事情是理所当然的。

这是解决我的问题的方法:

public override void Up()
{
    AlterColumn("dbo.Person", "FavoriteColor_Id", c => c.Int(nullable: true));
}
于 2013-11-07T14:20:11.203 回答