使用C#Database.SqlQuery处理不同的数据类型

时间:2014-04-15 16:14:24

标签: c# sql entity-framework postgresql

我正在使用.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));

我是以错误的方式来做这件事的吗?看起来应该有一个干净的方法来做这个,而不需要添加额外的逻辑来尝试提前确定字段类型。

有什么想法吗?

感谢。

0 个答案:

没有答案