【发布时间】:2013-04-05 19:08:27
【问题描述】:
在 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 级别定义转换器或类似的东西?更改数据库的选项不可行,因此我必须编辑代码。
【问题讨论】:
-
能否在您的 EF 模型中将数据类型更改为
decimal?
标签: visual-studio-2010 wcf entity-framework-4 casting oracle11g