首页 > 后端开发 > C++ > 如何控制 EF Code First 中小数属性的精度和小数位数?

如何控制 EF Code First 中小数属性的精度和小数位数?

Susan Sarandon
发布: 2025-01-21 23:26:09
原创
334 人浏览过

How Can I Control Precision and Scale for Decimal Properties in EF Code First?

在 EF Code First 中微调小数精度和小数位

映射到 SQL Server 时,实体框架 (EF) Code First 默认为 decimal(18, 0) 属性的 System.Decimal。 但是,您通常需要对精度和比例进行更多控制。 涉及直接 EntityPropertyConfiguration 操作的旧方法现已过时,被 EF 4.1 及更高版本中更简化的方法所取代。

利用DecimalPropertyConfiguration.HasPrecision

DecimalPropertyConfiguration类提供了HasPrecision方法来进行精确控制。 其语法为:

<code class="language-csharp">public DecimalPropertyConfiguration HasPrecision(byte precision, byte scale)</code>
登录后复制
  • precision:总位数(小数点前后)。
  • scale:小数点后的位数。

实际示例:设置精度和比例

DbContext 类的 OnModelCreating 方法中,您可以指定精度和小数位数:

<code class="language-csharp">public class EFDbContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyClass>().Property(e => e.MyDecimalProperty).HasPrecision(12, 10);

        base.OnModelCreating(modelBuilder);
    }
}</code>
登录后复制

这会将 MyDecimalProperty 实体中的 decimal(类型为 MyClass)映射到 SQL Server decimal(12, 10) 列。 这可确保数据库存储最多 12 位数字,最多 10 位小数。

以上是如何控制 EF Code First 中小数属性的精度和小数位数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板