dotnetcore / SmartCode

SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything!!!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

不支持 pg 数据库的数组类型

beginor opened this issue · comments

刚好有张测试表, 表结构为

-- Table: public.test_table

-- DROP TABLE public.test_table;

CREATE TABLE public.test_table
(
    id integer NOT NULL DEFAULT nextval('test_table_id_seq'::regclass),
    name character varying(32) COLLATE pg_catalog."default" NOT NULL,
    tags character varying(32)[] COLLATE pg_catalog."default",
    json_field json,
    jsonb_field jsonb,
    update_time timestamp without time zone,
    int32_arr integer[],
    int16_arr smallint[],
    int64_arr bigint[],
    real_arr real[],
    double_arr double precision[],
    bool_arr boolean[],
    long_field bigint,
    CONSTRAINT pk_test_table PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.test_table
    OWNER to postgres;
COMMENT ON TABLE public.test_table
    IS 'test table';

用 SmartCode 生成的实体类如下:

//*******************************
// Create By Ahoo Wang
// Date 2018-10-19 13:24
// Code Generate By SmartCode
// Code Generate Github : https://github.com/Ahoo-Wang/SmartCode
//*******************************
using System;
namespace SmartSql.Starter.Entity
{
    ///<summary>
    ///TestTable
    ///</summary>
    public class TestTable
    {
        ///<summary>        
        ///Id        
        ///</summary>        
        public int Id { get; set; }        
        ///<summary>        
        ///Name        
        ///</summary>        
        public string Name { get; set; }        
        ///<summary>        
        ///Tags        
        ///</summary>        
        public ? Tags { get; set; }        
        ///<summary>        
        ///JsonField        
        ///</summary>        
        public string JsonField { get; set; }        
        ///<summary>        
        ///JsonbField        
        ///</summary>        
        public string JsonbField { get; set; }        
        ///<summary>        
        ///UpdateTime        
        ///</summary>        
        public DateTime? UpdateTime { get; set; }        
        ///<summary>        
        ///Int32Arr        
        ///</summary>        
        public ? Int32Arr { get; set; }        
        ///<summary>        
        ///Int16Arr        
        ///</summary>        
        public ? Int16Arr { get; set; }        
        ///<summary>        
        ///Int64Arr        
        ///</summary>        
        public ? Int64Arr { get; set; }        
        ///<summary>        
        ///RealArr        
        ///</summary>        
        public ? RealArr { get; set; }        
        ///<summary>        
        ///DoubleArr        
        ///</summary>        
        public ? DoubleArr { get; set; }        
        ///<summary>        
        ///BoolArr        
        ///</summary>        
        public ? BoolArr { get; set; }        
        ///<summary>        
        ///LongField        
        ///</summary>        
        public long? LongField { get; set; }        
    }
}

已修复。
2388bbf

@Ahoo-Wang 对这个项目不是很熟悉, 不敢轻易下手。 貌似还有一个小问题, 就是 jsonjsonb 字段, 在 npgsql 4.x 中是使用 Newtonsoft.Json 来处理的, 通常映射成 JToken 类型。