我正在尝试这种代码优先的方法,但我现在发现 System.Decimal 类型的属性被映射到 Decimal(18, 0) 类型的 sql 列。
如何设置数据库列的精度?
戴夫·范·登·艾德 (Dave Van den Eynde) 的答案现已过时。有 2 个重要的变化,从 EF 4.1 开始,ModelBuilder 类现在是数据库模型构建器 http://msdn.microsoft.com/en-us/library/system.data.entity.modelconfiguration.configuration.decimalpropertyconfiguration.hasprecision%28v=vs.103%29.aspx现在有一个 DecimalPropertyConfiguration.HasPrecision 方法,其签名为:
public DecimalPropertyConfiguration HasPrecision(
byte precision,
byte scale )
其中 precision 是数据库将存储的总位数,无论小数点位于何处,scale 是它将存储的小数位数。
因此,不需要迭代所示的属性,但可以直接调用
public class EFDbContext : DbContext
{
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Class>().Property(object => object.property).HasPrecision(12, 10);
base.OnModelCreating(modelBuilder);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)