实体框架代码第一个可选属性映射为必需

时间:2015-02-25 14:24:12

标签: c# entity-framework ef-code-first

我遇到Code First问题。我只是将项目从Model First迁移到Code First,我认为实体框架正在失去理智......这是我的课程(简化):

public class MyClass
{
    // Key, other properties...

    public bool? MyNullBoolean { get; set; }

    public static void Configure(EntityTypeConfiguration<MyClass> myClass)
    {
        // Other configuration on other properties...
        myClass.Property(m => m.MyNullBoolean).IsOptional();
    }
}

以下是您的一些额外信息:

  • 我在Configure()方法中调用OnModelCreating()方法。
  • 启用了迁移,自动模式设置为false
  • 在我的迁移中,我有MyNullBoolean = c.Boolean(nullable: false),所以EF 表现得像这个属性是必需的,这不像以前那样 可见
  • 我将内部数据作为现有数据库(dev)的目标,因此我无法执行“用于测试目的”的迁移
  • 这是与Model First完全相同的模型,最后一个模型正常工作......

以下是我的尝试:

  • 在项目上禁用/启用EF(删除项目和数据库中的迁移)
  • 重启VS
  • 定位另一个DB(相同结构)
  • 保留未配置的属性(因此EF单独完成工作)

我没有想法,我在互联网上一无所获。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我认为EF已损坏,因为当我卸载它时,清理解决方案,安装它,重建解决方案,它有效。

所以db或我的模型没有问题。