具有动态结果的Linq存储过程

具有动态结果的Linq存储过程,linq,.net-3.5,Linq,.net 3.5,所以我对.NET3.5中的Linq非常陌生,我有一个问题。我使用自定义类来处理存储过程中的以下结果: 第1组:ID名称年龄 第2组:ID地址城市 设置3:ID产品价格 使用我的自定义类,我将从数据库接收到一个数据集,其中包含3个DataTables,其中的列基于从DB返回的内容 我的问题是如何与LINQ达成这一点?我需要点击数据库1次,然后返回多个包含不同类型数据的集合 另外,如何使用LINQ根据参数返回动态数量的集合(可以返回1个集合,可以返回N个集合) 我已经看过了,但没有找到任何解释多

所以我对.NET3.5中的Linq非常陌生,我有一个问题。我使用自定义类来处理存储过程中的以下结果:

  • 第1组:ID名称年龄
  • 第2组:ID地址城市
  • 设置3:ID产品价格
使用我的自定义类,我将从数据库接收到一个数据集,其中包含3个DataTables,其中的列基于从DB返回的内容

我的问题是如何与LINQ达成这一点?我需要点击数据库1次,然后返回多个包含不同类型数据的集合

另外,如何使用LINQ根据参数返回动态数量的集合(可以返回1个集合,可以返回N个集合)

我已经看过了,但没有找到任何解释多个集合的东西(只有一个可以是动态的集合,或者一个标量值和一个集合)

任何文章/评论都会有所帮助


谢谢

我自己对LINQ不是很熟悉,但我是MSDN关于LINQ示例的网站,可能可以帮助您解决问题。

编辑:很抱歉,我错过了您提到的希望帮助使用LINQ和存储过程的标题,我下面的答案根本没有解决这个问题,不幸的是,我没有必要将存储过程与LINQ一起使用,因此我不确定下面的答案是否有帮助

LINQtoSQL能够在命中数据库一次的同时将多组数据合并到一个对象图中。然而,我不认为LINQ能够实现您最终想要的——据我所知,这是一组在查询本身之外定义的完全动态的数据。也许我误解了这个问题,如果您提供一些现有应用程序正在使用的示例代码,可能会有所帮助

下面是一个简单的示例,演示了如何通过一个数据库调用来添加匿名类型,也许这会有所帮助:

var query = from p in db.Products
            select new
                       {
                           Product = p,
                           NumberOfOrders = p.Orders.Count(),
                           LastOrderDate = p.Orders.OrderByDescending().Take(1).Select(o => o.OrderDate),
                           Orders = p.Orders
                       };

我相信这就是你要找的