1. 程式人生 > >.Net Entity Framework Core 用 HasColumnType 配置浮點數精度

.Net Entity Framework Core 用 HasColumnType 配置浮點數精度

work lB amount override 發現 metadata 資料 前言 prot

一、前言

前段時間用.Net Entity Framework core搭建框架,需要配置浮點數的精度,發現.Net Entity Framework core 並沒有HasPrecision方法。在網上查找資料也比較少,最後通過官方文檔說明,嘗試使用HasColumnType配置浮點數精度成功。

二、HasColumnType官方文檔說明

文檔連接:

https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.entityframeworkcore.relationalpropertybuilderextensions.hascolumntype?view=efcore-2.0#Microsoft_EntityFrameworkCore_RelationalPropertyBuilderExtensions_HasColumnType_Microsoft_EntityFrameworkCore_Metadata_Builders_PropertyBuilder_System_String_

技術分享圖片

三、對比.Net Entity Framework 和.Net Entity Framework Core 配置

.Net Entity Framework方法:

public class MyProjectContext : DbContext
{
        public DbSet<Order> Orders { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
//配置訂單的金額浮點數精度為decimal(18,6) modelBuilder.Entity<Order>().Property(t => t.Amount).HasPrecision(18, 6);     } }

.Net Entity Framework Core方法:

public class MyProjectContext : DbContext
{
        public DbSet<Order> Orders { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            
base.OnModelCreating(modelBuilder); modelBuilder.Entity<Order>(b => {           //配置訂單的金額浮點數精度為decimal(18,6) b.Property(p => p.Amount).HasColumnType("decimal(18,6)"); });      } }

.Net Entity Framework Core 用 HasColumnType 配置浮點數精度