4

我有一张桌子:

create table scheduled_task
(
    scheduled_task_id serial primary key,
    description varchar(255),
    predicate varchar(10485760),
    path varchar(255),
    scheduled_task_type_id int references scheduled_task_type (scheduled_task_type_id)
);

我的数据对象:

[Table("scheduled_task")]
public class DOScheduledTask
{
    [Key]
    [Column("scheduled_task_id")]
    public long? ScheduledTaskId { get; set; }

    [Column("description")]
    public string Description { get; set;}

    [Column("predicate")] 
    public string Predicate { get; set; }

    [Column("path")]
    public string Path { get; set; }

    [Column("scheduled_task_type_id")]
    public long? ScheduledTaskTypeId { get; set; }
}

我在表中插入了一条记录,该记录填充了所有字段。

我在代码中执行此操作:

var schedules = conn.Connection.Query<DOScheduledTask>("select * from scheduled_task ;");
var schedulesb = conn.Connection.GetList<DOScheduledTask>();

第一行产生一条记录,除了 schedule_task_id 和 schedule_task_type_id 之外的所有内容都为空。对于第二个查询,它被完整填充。

我究竟做错了什么?

4

1 回答 1

1

问题是.Queryand.GetList来自两个不同的实现;一个来自 Dapper,另一个来自SimpleCRUD

解决方案是创建一个自定义映射器,因为列的命名在代码中与在数据库中不同。

于 2019-11-22T13:37:40.327 回答