在 WCF Web 服务中,我对 ORACLE 11g 数据库进行查询,并使用实体框架作为模型。目标字段是 Numeric 类型,而在实体框架中是 Int64。
当我尝试更新该字段时,出现以下异常:从具体化的“System.Decimal”类型到“System.Int64”类型的指定转换无效。 产生错误的方法如下,特别是 else 语句中的行:result = _context.ExecuteStoreQuery(query).FirstOrDefault();
public string GetDatabaseTimestamp(Type timestampFieldType, string query)
{
object result;
if (timestampFieldType == typeof(string))
{
result = _context.ExecuteStoreQuery<string>(query).FirstOrDefault();
}
else
{
result = _context.ExecuteStoreQuery<long>(query).FirstOrDefault();
}
return result.ToString();
}
是否可以在 EF 级别定义转换器或类似的东西?更改数据库的选项不可行,因此我必须编辑代码。