C# 实体框架代码根据需要映射第一个可选属性

C# 实体框架代码根据需要映射第一个可选属性,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我首先对代码有问题。我只是将项目从模型优先迁移到代码优先,我认为实体框架正在失去理智。。。这是我的课程(简体): 公共类MyClass { //键,其他属性。。。 公共布尔值?MyNullBoolean{get;set;} 公共静态void配置(EntityTypeConfiguration myClass) { //其他属性上的其他配置。。。 属性(m=>m.MyNullBoolean).IsOptional(); } } 以下是为您提供的一些附加信息: 我在OnModelCreating

我首先对代码有问题。我只是将项目从模型优先迁移到代码优先,我认为实体框架正在失去理智。。。这是我的课程(简体):

公共类MyClass
{
//键,其他属性。。。
公共布尔值?MyNullBoolean{get;set;}
公共静态void配置(EntityTypeConfiguration myClass)
{
//其他属性上的其他配置。。。
属性(m=>m.MyNullBoolean).IsOptional();
}
}
以下是为您提供的一些附加信息:

  • 我在
    OnModelCreating()
    方法中调用
    Configure()
    方法
  • 已启用迁移,且自动模式设置为false
  • 在我的迁移中,我有
    MyNullBoolean=c.Boolean(nullable:false)
    ,所以EF 该属性是必需的,与以前不同 看到了
  • 我的目标是一个包含数据的现有数据库(dev),因此无法“出于测试目的”执行迁移
  • 这是与第一个模型完全相同的模型,最后一个模型工作正常
以下是我尝试过的:

  • 在项目上禁用/启用EF(删除项目和数据库中的迁移)
  • 重新启动VS
  • 针对另一个数据库(相同结构)
  • 保留未配置的属性(以便EF单独执行作业)

我不知道,我在网上什么也没找到。谢谢你们的帮助,伙计们

我认为EF已经损坏,因为当我卸载它、清理解决方案、安装它、重建解决方案时,它工作了


因此,db或我的模型没有问题。

MyNullBoolean属性上方的注释是什么意思?建议对其应用
属性?@DavidG否。只是说该类中还有其他属性一些问题:1.您确定db MyNullBoolean中的类型允许null吗?2.是否尝试在没有配置此属性的情况下运行程序?哪一个错误?@Chase是的,我确定,我检查了多次,在从第一个模型迁移之前,db已经存在了。好的,第二个问题呢?
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();
    }
}