-1

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

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

我怎样才能做到这一点?

4

1 回答 1

2

你举个例子:

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;
}
于 2013-07-13T19:08:11.090 回答