我有一张桌子:
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都为空。对于第二个查询,它已完全填充。
我在做什么错了?
答案 0 :(得分:1)
问题在于.Query
和.GetList
来自两个不同的实现;一个来自Dapper,另一个来自SimpleCRUD。
解决方案是创建一个自定义映射器,因为列的命名与数据库中的代码不同。