【发布时间】:2019-01-06 17:13:53
【问题描述】:
在我的 asp.net 项目中,我使用 dapper 从 Oracle 数据库中获取数据。 我有一个这样的 sql 请求:
select SUM(( pt.end_date - pt.start_date ) * 24 ) time_coacsh
,SUM(( pt.end_date - pt.start_date ) * 24 )/COUNT(rc.reg_coach_id) oborot_coacsh
from ...
只有这些属性的模型:
[Column("time_coacsh")]
public Double TimeCoacsh { get; set; }
[Column("oborot_coacsh")]
public Double OborotCoacsh { get; set; }
我正在尝试通过以下方法获取对象列表:
public IEnumerable<TModel> Query<TModel>(string sql, object paramsSql = null)
{
SqlMapper.SetTypeMap(typeof(TModel), new CustomPropertyTypeMap(typeof(TModel), BaseParamMappings.SelectProperty));
return SqlMapper.Query<TModel>(_db, new CommandDefinition(sql, paramsSql, null, null, CommandType.Text)).ToList();
}
但是我得到了这个错误:
解析第 0 列时出错(TIME_COACSH=null)
如果我在 oracle 中执行 sql 请求,我将获得没有一些 null 值的所需数据。
在模型中我尝试使用 Float、Decimal、Double,但我得到了同样的错误。
【问题讨论】:
-
尝试使该字段可以为空:
public Double? TimeCoacsh -
我试过
Double?和float?。没有任何改变 -
是否返回大量数据?
-
@SteveJ,没有。我用请求进行了测试,它只返回 15 行