我正在使用.NET 4.5和Entity Framework 6。
我必须使用预先构建的SQL字符串并对PostgreSQL数据库执行它。我目前正在使用[DBContext] .Database.SqlQuery()来提取这些值,但我有一个int和double值的混合,这些值根据表中的哪个字段被提取而返回。我一直在获取类型转换异常,因为我试图通过SqlQuery调用强制int成为另一个类型,如float或double。我尝试了以下各种组合,但没有运气。
//db is my database context
var queryResult = db.Database.SqlQuery<float>(queryString);
//Extract and cast the value from the query result
//Works fine until a field with a type of int is encountered
tagValue = (float)auxQuery.Single();
//I've also tried this with <dynamic> in place of <float> above.
//tagValue = Convert.ChangeType(queryResult.Single(), typeof(float));
我是以错误的方式来做这件事的吗?看起来应该有一个干净的方法来做这个,而不需要添加额外的逻辑来尝试提前确定字段类型。
有什么想法吗?
感谢。