public void Configure(EntityTypeBuilder <Order> builder) { builder.ToTable(nameof(Order), _appSettings.Db.DefaultSchema); builder.HasKey(x => new { x.Id, }) .IsClustered(); builder.HasIndex(u => u.Guid) .HasDatabaseName($"IX_{nameof(Order)}_{nameof(Order.Guid)}") .IsUnique(); builder.Property(x => x.Id) .IsRequired() .UseIdentityColumn(1, 1) .HasColumnType(SqlDbTypes.Bigint) .HasComment("ID"); builder.Property(x => x.Guid) .IsRequired() .HasColumnType(SqlDbTypes.Uniqueidentifier) .HasComment("Guid"); builder.Property(x => x.Name) .IsRequired() .HasColumnType(SqlDbTypes.Nvarchar(50)) .HasComment("名稱"); builder.Property(x => x.SubTotal) .IsRequired() .HasColumnType(SqlDbTypes.Varchar(30)) .HasComment("小計"); builder.Property(x => x.BusinessTax) .IsRequired() .HasColumnType(SqlDbTypes.Varchar(30)) .HasComment("營業稅"); builder.Property(x => x.Total) .IsRequired() .HasColumnType(SqlDbTypes.Varchar(30)) .HasComment("總計"); builder.Property(x => x.FloatPrecision) .IsRequired() .HasColumnType(SqlDbTypes.Numeric(12, 10)) .HasComment("浮點數解析度"); // 以下是 FK 設定 }
public void Configure(EntityTypeBuilder <OrderDetail> builder) { builder.ToTable(nameof(OrderDetail), _appSettings.Db.DefaultSchema); builder.HasKey(x => new { x.Id, }) .IsClustered(); builder.HasIndex(u => u.Guid) .HasDatabaseName($"IX_{nameof(OrderDetail)}_{nameof(OrderDetail.Guid)}") .IsUnique(); builder.Property(x => x.Id) .IsRequired() .UseIdentityColumn(1, 1) .HasColumnType(SqlDbTypes.Bigint) .HasComment("ID"); builder.Property(x => x.Guid) .IsRequired() .HasColumnType(SqlDbTypes.Uniqueidentifier) .HasComment("Guid"); builder.Property(x => x.OrderGuid) .IsRequired() .HasColumnType(SqlDbTypes.Uniqueidentifier) .HasComment("訂單 Guid"); builder.Property(x => x.Item) .IsRequired() .HasColumnType(SqlDbTypes.Nvarchar(50)) .HasComment("項目"); builder.Property(x => x.UnitPrice) .IsRequired() .HasColumnType(SqlDbTypes.Varchar(30)) .HasComment("單價"); builder.Property(x => x.Count) .IsRequired() .HasColumnType(SqlDbTypes.Int) .HasComment("數量"); builder.Property(x => x.Amount) .IsRequired() .HasColumnType(SqlDbTypes.Varchar(30)) .HasComment("金額"); builder.Property(x => x.Comment) .HasColumnType(SqlDbTypes.Nvarchar(1000)) .HasComment("備註"); // 以下是 FK 設定 builder.HasOne(x => x.Order) .WithMany() .IsRequired() .HasConstraintName($"FK_{nameof(OrderDetail)}_{nameof(OrderDetail.OrderGuid)}_{nameof(Order)}_{nameof(Order.Guid)}") .HasPrincipalKey(x => x.Guid) .OnDelete(DeleteBehavior.NoAction); }