实体框架CF中可为空的外键不可为空

时间:2014-08-14 14:04:15

标签: c# sql entity-framework ef-code-first foreign-keys

我正在尝试生成一个可以为空的外键 - 所以在加载类时关系是存在的,但如果依赖对象被删除,它应该返回null。想象一个论坛帖子,其中附有User对象,但如果用户删除了他们的帐户,那么我希望论坛帖子仍然存在于DB中并为用户返回null。

我的流利如下

modelBuilder.Entity<DbForumPost>()
                .HasOptional(b => b.User)
                .WithMany()
                .HasForeignKey(b => b.UserId)
                .WillCascadeOnDelete(false); 

我的EF对象类如下

[Table("ForumPost")]
    public class DbForumPost     {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public long Id { get; set; }

        public int? UserId { get; set; }
        public virtual DbUser User { get; set; }

        // rest omitted for brevity
}

现在从我读过的所有内容中,将UserId字段声明为int?并在Fluent中映射为&#34; HasOptional&#34;,这应该给我一个数据库列&#34; UserId&#34;与User表的外键关系,但UserId列应该可以为空。但是,在SQL查询管理器中检查模式时,该列实际上不可为空,我收到错误。

我错过了什么?

0 个答案:

没有答案
相关问题