C# 未知的“System.Object”到“string”或XML

C# 未知的“System.Object”到“string”或XML,c#,entity-framework,C#,Entity Framework,我正在使用实体框架 var result = db.Database.SqlQuery<object>(dynamicSQLString); var res = result.ToList(); 如果我对res进行计数,我会得到预期的行数,但我看不到获取此对象/动态行的属性名称的方法,也看不到它的值 更新2 我发现了一个类似的示例,但在其中,用户确切地知道select将返回的参数/类型。 您可以改用动态类型: 但是,在将其放入列表之前,您需要对其进行一些转换。除非使用SQL

我正在使用实体框架

  var result = db.Database.SqlQuery<object>(dynamicSQLString);
  var res = result.ToList();
如果我对res进行计数,我会得到预期的行数,但我看不到获取此对象/动态行的属性名称的方法,也看不到它的值

更新2

我发现了一个类似的示例,但在其中,用户确切地知道select将返回的参数/类型。

您可以改用动态类型:


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

除非使用SQL查询,否则无法将结果转换为字符串 在本例中,dynamicSQLString 返回前置基元,例如
从为数据库中的每一行返回字符串结果的客户中选择名称

如果要这样做,为什么要使用实体框架?如果有一个类的公共setter与结果集的列名匹配,和一个默认构造函数,即POCO,那么您应该将其作为类型参数传递。@jodrell遗留原因,我不能使用ado.net或其他东西……因此您不想知道这是否是一种方法,因为它已经是唯一的方法。这显然取决于您在查询后对数据的处理方式。在添加到列表之前,您可以对结果进行简单的GetType。请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标签就是为了这个目的。这似乎就是问题所在。。。每一行可能是不同类型事物的列表。。。。。这就是为什么我在想,即使有可能将所有内容都转换成一个IDictionary,然后以某种方式对每个值执行ToString。。。。但我甚至不能做第一个演员。
var t1 = result.GetType(); //System.Data.Entity.Internal.InternalSqlQuery
var res = result.ToList();
var first = res.First();                
var t2 = first.GetType(); // System.Object