Entity Framework Code First Optional 属性 映射为 Required
Entity Framework Code First Optional Property is mapped as Required
我对 Code First 有疑问。我只是将项目从 Model First 迁移到 Code First,我认为 Entity Framework 正在失去理智......这是我的 class(简化):
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();
}
}
这里有一些额外的信息供您参考:
- 我在
OnModelCreating()
方法中调用了Configure()
方法
- 迁移已启用且自动模式设置为 false
- 在我的迁移中我有
MyNullBoolean = c.Boolean(nullable: false)
,所以 EF
像这样 属性 是必需的,这与以前不同
看过。
- 我的目标是一个现有的数据库 (dev),里面有数据,所以我无法执行迁移 "for testing purposes"
- 这与 Model First 中的模型完全相同,最后一个工作正常...
这是我尝试过的:
- 在项目上禁用/启用 EF(删除项目和数据库中的迁移)
- 正在重启 VS
- 针对另一个数据库(相同结构)
- 不配置 属性(让 EF 单独完成工作)
我脑子糊涂了,我在 Internet 上什么也没找到。感谢你们的帮助!
我认为 EF 已损坏,因为当我卸载它、清理解决方案、安装它、重建解决方案时,它起作用了。
所以数据库和我的模型都没有问题。
我对 Code First 有疑问。我只是将项目从 Model First 迁移到 Code First,我认为 Entity Framework 正在失去理智......这是我的 class(简化):
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();
}
}
这里有一些额外的信息供您参考:
- 我在
OnModelCreating()
方法中调用了Configure()
方法 - 迁移已启用且自动模式设置为 false
- 在我的迁移中我有
MyNullBoolean = c.Boolean(nullable: false)
,所以 EF 像这样 属性 是必需的,这与以前不同 看过。 - 我的目标是一个现有的数据库 (dev),里面有数据,所以我无法执行迁移 "for testing purposes"
- 这与 Model First 中的模型完全相同,最后一个工作正常...
这是我尝试过的:
- 在项目上禁用/启用 EF(删除项目和数据库中的迁移)
- 正在重启 VS
- 针对另一个数据库(相同结构)
- 不配置 属性(让 EF 单独完成工作)
我脑子糊涂了,我在 Internet 上什么也没找到。感谢你们的帮助!
我认为 EF 已损坏,因为当我卸载它、清理解决方案、安装它、重建解决方案时,它起作用了。
所以数据库和我的模型都没有问题。