Dapper 产生不同的结果
Dapper yielding different results
我有一个 table :
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; }
}
我在 table 中插入了一条记录,它填充了所有字段。
我在代码中执行此操作:
var schedules = conn.Connection.Query<DOScheduledTask>("select * from scheduled_task ;");
var schedulesb = conn.Connection.GetList<DOScheduledTask>();
第一行产生一条记录,除了scheduled_task_id和scheduled_task_type_id之外的所有内容都是空的。对于第二个查询,它被完整填充。
我做错了什么?
问题是 .Query
和 .GetList
来自两个不同的实现;一个来自Dapper,另一个来自SimpleCRUD.
解决方案是创建一个自定义映射器,因为列的命名在代码中与在数据库中不同。
我有一个 table :
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; }
}
我在 table 中插入了一条记录,它填充了所有字段。
我在代码中执行此操作:
var schedules = conn.Connection.Query<DOScheduledTask>("select * from scheduled_task ;");
var schedulesb = conn.Connection.GetList<DOScheduledTask>();
第一行产生一条记录,除了scheduled_task_id和scheduled_task_type_id之外的所有内容都是空的。对于第二个查询,它被完整填充。
我做错了什么?
问题是 .Query
和 .GetList
来自两个不同的实现;一个来自Dapper,另一个来自SimpleCRUD.
解决方案是创建一个自定义映射器,因为列的命名在代码中与在数据库中不同。