我有一个名为TotalVolume
的属性Double
。在构造数据库的代码优先方法中,属性TotalVolume
默认具有Not Null
值。我想要使属性TotalVolume
接受Null
值。
我正在使用FluentAPI,我所做的更改如下:
modelBuilder.Entity<Employee>()
.Property(p => p.TotalVolume)
.IsRequired(false);
我Add-Migration
时出现以下错误:
实体类型'Employee'上的属性'TotalVolume'不能标记为nullable / optional,因为属性的类型是'double',它不是可空类型。任何属性都可以标记为不可为空/必需,但只有可空类型的属性和不属于主键的属性可以标记为可空/可选。
此后,我尝试了以下方法,我在Employee
模型中进行了以下更改。
public double? TotalVolume{ get; set; }
但是,当我更新数据库时,TotalVolume
的数据类型已更改为float
。我希望数据类型仍然保持为double
。
答案 0 :(得分:0)
float
是一个64位的值,对应于.Net中的double
,所以它似乎按预期工作。
实体框架映射这些类型,使它们具有相同的含义,但它们并不要求它们具有相同的名称。