未知“System.Object”到“字符串”或XML

时间:2014-03-05 09:45:50

标签: c# entity-framework

我正在使用实体框架

  var result = db.Database.SqlQuery<object>(dynamicSQLString);
  var res = result.ToList();

其中dynamicSQLString可以是任何东西......可以返回“count()”,可以是带有行列表的select ....等等......没有办法将它与已知的类类型匹配。所以我想到了使用“对象”。

我想知道这是否可行,如果是,我怎样才能将结果“转换”为“字符串”......?

这甚至可能吗?

更新#1

var t1 = result.GetType(); //System.Data.Entity.Internal.InternalSqlQuery
var res = result.ToList();
var first = res.First();                
var t2 = first.GetType(); // System.Object

如果我对“res”进行计数,我会得到预期的行数,但是我没有看到获取此对象/动态行的“属性名称”的方法,也没有找到它的值。

更新#2

我找到了一个“类似”的例子,但在那里,这个人确切地知道选择将返回的参数/类型。 http://www.codeproject.com/Articles/206416/Use-dynamic-type-in-Entity-Framework-4-1-SqlQuery

2 个答案:

答案 0 :(得分:0)

您可以改用动态类型:

http://msdn.microsoft.com/en-us/library/dd264736.aspx

但是,在将其放入列表之前,您需要对其进行一些投射。

答案 1 :(得分:0)

除非您的SQL查询,否则无法将结果转换为字符串 (在本例中为dynamicSQLString) 返回premitive原语如 “从客户中选择名称”,返回数据库中每行的字符串结果