Linq查询表达式
本文关键字:表达式 查询表 查询 Linq | 更新日期: 2023-09-27 18:15:07
我正在编写一个生成匿名结果集的连接查询。我的问题是,我不知道哪种数据类型应该从我的函数服务返回,我试图返回对象类型,但我不知道如何访问结果的元素在我的源代码…
下面是我的代码: 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;
}
您应该创建一个包含匿名对象属性的DTO类,并返回它的IEnumerable<T>
。另一个不太好的解决方案是使用dynamic
,但我不会使用它
创建一个这样的自定义类
public partial class ResultClass
{
public string Name {get;set;}
public int OrderId {get;set;}
public double TotalPrice {get;set;}
}
public List<ResultClass> GetProductSalesInfoById(int id)
{
var query = from product in database.Products
join sales in database.SalesOrderDetails
on product.ProductID equals sales.ProductID
select new ResultClass {Name = product.Name,OrderId = sales.SalesOrderID,TotalPrice = (sales.UnitPriceDiscount)*sales.OrderQty*sales.UnitPrice};
return result.ToList();
}
您可以使用Tuple或匿名类型(您需要使用强制类型转换来返回对象)。请查看此链接以使用:匿名&元组对象