小巧的人产生不同的结果

时间:2019-11-19 11:19:21

标签: c# postgresql dapper dapper-simplecrud

我有一张桌子:

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都为空。对于第二个查询,它已完全填充。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

问题在于.Query.GetList来自两个不同的实现;一个来自Dapper,另一个来自SimpleCRUD

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