实体框架将FK设置为​​可空

时间:2013-11-07 01:27:08

标签: entity-framework code-first database-migration

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

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

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

THX

1 个答案:

答案 0 :(得分:1)

好好再次睡个好觉,我进来工作新鲜,能够在几分钟内解决这个问题。

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

以下是解决我问题的方法:

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