Linq查询表达式

时间:2015-09-30 06:40:51

标签: c# linq

我正在编写一个生成匿名结果集的连接查询。我的问题是,我不知道应该从我的功能服务返回哪种数据类型,我试图返回对象类型,但我不知道如何在源代码中访问结果元素...

这是我的代码:

 public static IEnumerable<object> GetProductSalesInfoById(int id)
 {
     var query = from product in database.Products
         join sales in database.SalesOrderDetails
             on product.ProductID equals sales.ProductID
         select new  {Name = product.Name,OrderId = sales.SalesOrderID,TotalPrice = (sales.UnitPriceDiscount)*sales.OrderQty*sales.UnitPrice};

     IEnumerable<object> result = query.ToList();
     return result;
 } 

3 个答案:

答案 0 :(得分:1)

您应该创建一个DTO类,其中包含匿名对象中的属性并返回IEnumerable<T>个属性。另一个不太好的解决方案是使用dynamic,但我不会使用它。

答案 1 :(得分:1)

创建一个像这样的自定义类

var obj = {name: 'misko', gender: 'male'};
var log = [];
angular.forEach(obj, function(value, key) {
  console.log(key + ': ' + value);
});
// it will log two iteration like this
// name: misko
// gender: male

希望这会帮助你。

答案 2 :(得分:0)

您可以使用Tuple或匿名类型(您需要使用强制转换来取回对象)。 请查看此链接以了解用法:Anonymous & tuple objects