Home > Mobile >  ... is of type 'Instant?' which is not supported by the current database provider
... is of type 'Instant?' which is not supported by the current database provider

Time:09-11

I am using ASP.NET Core WebAPI , .NET 6, EF Core 6, PostgreSQL 14.5 , Visual Studio 2022 Community Edition.

My command

Scaffold-DbContext "Server=127.0.0.1;Port=5432;Database=acc200;User Id=postgres; Password=postgres;" Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir Models -ContextDir Data -Context ApplicationDbContext -force
using System;
using System.Collections.Generic;
using NodaTime;

namespace acc7.Models
{
    /// <summary>
    /// Danh mục tài khoản
    /// </summary>
    public partial class Account
    {
        /// <summary>
        /// PK Tài khoản
        /// </summary>
        public short Id { get; set; }
        /// <summary>
        /// Số hiệu tài khoản
        /// </summary>
        public string AccountNumber { get; set; } = null!;
        /// <summary>
        /// Tên tài khoản
        /// </summary>
        public string AccountName { get; set; } = null!;
        /// <summary>
        /// Tên tài khoản bằng Tiếng Anh
        /// </summary>
        public string? AccountNameEnglish { get; set; }
        /// <summary>
        /// Tên tài khoản bằng Tiếng Trung
        /// </summary>
        public string? AccountNameChinese { get; set; }
        /// <summary>
        /// Tên tài khoản bằng Tiếng Hàn Quốc
        /// </summary>
        public string? AccountNameKorean { get; set; }
        /// <summary>
        /// Diễn giải
        /// </summary>
        public string? Description { get; set; }
        /// <summary>
        /// TK Tổng hợp
        /// </summary>
        public short? ParentId { get; set; }
        public string? InternalCodeId { get; set; }
        /// <summary>
        /// Cấp bậc
        /// </summary>
        public short? Grade { get; set; }
        /// <summary>
        /// Là TK tổng hợp
        /// </summary>
        public bool IsParent { get; set; }
        /// <summary>
        /// Tính chất tài khoản: 0: Dư nợ; 1: Dư có; 2: Lưỡng tính
        /// </summary>
        public short AccountCategoryKind { get; set; }
        /// <summary>
        /// Có hạch toán ngoại tệ
        /// </summary>
        public bool IsPostableInForeignCurrency { get; set; }
        /// <summary>
        /// Chi tiết theo đối tượng
        /// </summary>
        public bool DetailByAccountObject { get; set; }
        /// <summary>
        /// Loại đối tượng: 0 - Nhà cung cấp, 1- Khách hàng, 2- Nhân viên
        /// </summary>
        public short? AccountObjectType { get; set; }
        /// <summary>
        /// Chi tiết theo tài khoản ngân hàng
        /// </summary>
        public bool DetailByBankAccount { get; set; }
        /// <summary>
        /// Chi tiết theo đối tượng tập hợp chi phí
        /// </summary>
        public bool DetailByJob { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByJobKind { get; set; }
        /// <summary>
        /// Chi tiết theo công trình, vụ việc
        /// </summary>
        public bool DetailByProjectWork { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByProjectWorkKind { get; set; }
        /// <summary>
        /// Chi tiết theo đơn hàng
        /// </summary>
        public bool DetailByOrder { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByOrderKind { get; set; }
        /// <summary>
        /// Chi tiết theo hợp đồng
        /// </summary>
        public bool DetailByContract { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByContractKind { get; set; }
        /// <summary>
        /// Chi tiết theo Khoản mục CP
        /// </summary>
        public bool DetailByExpenseItem { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByExpenseItemKind { get; set; }
        /// <summary>
        /// Chi tiết theo đơn vị
        /// </summary>
        public bool DetailByDepartment { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByDepartmentKind { get; set; }
        /// <summary>
        /// Chi tiết theo mã thống kê
        /// </summary>
        public bool DetailByListItem { get; set; }
        /// <summary>
        /// 0 = Chỉ cảnh báo; 1 = Bắt buộc nhập
        /// </summary>
        public short? DetailByListItemKind { get; set; }
        /// <summary>
        /// Trạng thái theo dõi
        /// </summary>
        public bool ActiveStatus { get; set; }
        public Instant? Created { get; set; }
        public string? CreatedBy { get; set; }
        public Instant? Modified { get; set; }
        public string? ModifiedBy { get; set; }
        /// <summary>
        /// Cột dùng để sort trên báo cáo. Không sử dụng trên giao diện.
        /// </summary>
        public string? SortInternalCodeId { get; set; }
        public bool DetailByPuContract { get; set; }
        public short? DetailByPuContractKind { get; set; }
        public short TenantId { get; set; }
    }
}

DB context: enter image description here

How to fix it?

CodePudding user response:

You are missing a call to:

.UseNodaTime();

Inside Program.cs

builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseNpgsql("Server=127.0.0.1;Port=5432;Database=acc200;User Id=postgres;Password=postgres;", x => x.UseNodaTime()));
  • Related