关于LINQ中SELECT NEW 的问题。

Csharpbull 2009-10-30 01:37:43
请帮忙看看,我返回的结果如何进行遍历
public static object SelectAnyInfo()
{
DataAccessContext context = new DataAccessContext();
var query = from c in context.VideoNetServers
from cc in context.Areas
from ver in context.VersionItems
where c.Areas.AreaID == cc.AreaID &&
c.VideoNetServerRowID == ver.ResourceRowID &&
ver.ResourceTableName.Contains("VIDEONETSERVERS") &&
((ver.VersionTo == int.MaxValue) || (ver.VersionTo == 0 && ver.Action != "删除"))
orderby c.VideoNetServerID
select new
{
c.VideoNetServerRowID,
c.VedeoNetServerName,
c.VedeoNetServerCode,
c.IPAddress,
cc.AreaName
};
return query;
}

public static List<Plant> GetData
{
get{
var ds = DataAccess.VideoNetServers.SelectAnyInfo();

List<Plant> data = new List<Plant>();

foreach (var obj in ds){
//这个里面无法遍历,Foreach无法定义Var obj
//麻烦高手看看

}
return data;
}
...全文
545 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
_see_you_again_ 2009-10-30
  • 打赏
  • 举报
回复
select new
{
c.VideoNetServerRowID,
c.VedeoNetServerName,
c.VedeoNetServerCode,
c.IPAddress,
cc.AreaName
};
将上述代码定义成一个MyClass类
public static List<MyClass> SelectAnyInfo()
{
return query.ToList<MyClass>();
Csharpbull 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huming_h 的回复:]
你是要返回  List <Plant> data = new List <Plant>(); 吧
要不直接在
public static List <Plant> SelectAnyInfo()
{
  foreach(var v in query )
  {
      ............
  }
}
[/Quote]

List <Plant>
数据访问成层我封成了DLL,Plant是我调用DLL的程序中自己定义的类,不是LINQ中的数据模型对象。
头大啊
Error_Code 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 csharpbull 的回复:]

问题是var query,这个query对象没办法转成Queryable,我生成的对象是select New的对象。
[/Quote]
linq查询的结果都是IEnumable的 返回IEnumable 不是Queryable
danoy 2009-10-30
  • 打赏
  • 举报
回复
呵呵,这位兄弟犯得跟我一样的错,对泛行不是很理解。
理解了泛行就知道怎么改了。
foreach的方便用法也是应为有个确定的类型可以遍历。
直接就可以读取对象属性。
huming_h 2009-10-30
  • 打赏
  • 举报
回复
你是要返回 List <Plant> data = new List <Plant>(); 吧
要不直接在
public static List<Plant> SelectAnyInfo()
{
foreach(var v in query )
{
............
}
}
Csharpbull 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 herojams 的回复:]
你SelectAnyInfo返回的是object类型需要转换才能遍历
public static Queryable SelectAnyInfo() 改成Queryable
[/Quote]
问题是var query,这个query对象没办法转成Queryable,我生成的对象是select New的对象。
huming_h 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 herojams 的回复:]
你SelectAnyInfo返回的是object类型需要转换才能遍历
public static Queryable SelectAnyInfo() 改成Queryable
[/Quote]
对,返回类型不能是object的
_see_you_again_ 2009-10-30
  • 打赏
  • 举报
回复
你SelectAnyInfo返回的是object类型需要转换才能遍历
public static Queryable SelectAnyInfo() 改成Queryable

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧