如何从IQueryable获取数据?

时间:2013-07-13 18:54:44

标签: c#

我调用了一个返回IQueryable的方法。例如 var x = acDAL.GetData(); 它通过连接返回3个表数据。我想从这个IQueryable中获取数据,例如

var x = acDAL.GetData(); 
foreach(var item in x) 
{ 
    int id=item.Id; 
}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您举例:

var x = acDAL.GetData();
foreach(var a in x) {
    int id=a.Id;
}

但大多数情况下,如果已经有效,尤其是因为IQueryable实现了IEnumerable。问题是.Id

你有两个选择:

  • 知道T,然后施放到IQueryable-of-T
  • 使用动态

后者只涉及将示例中的var更改为dynamic

var x = acDAL.GetData();
foreach(dynamic a in x) {
    int id=a.Id;
}

前者涉及了解对象 - 尝试a.GetType()以查看它是什么。然后:

var x = acDAL.GetData();
foreach(SomeType a in x) {
    int id=a.Id;
}

或者:

var x = (IQueryable<SomeType>)acDAL.GetData();
foreach(var a in x) {
    int id=a.Id;
}