嗨专家 我当前写这段代码:
public IList<TResult> GetCustomQuery<TResult>(int orderID, Func<Order, TResult> selector)
{
using(RepositoryDataContext = new NorthwindEntities())
{
IList<TResult> res = (from od in RepositoryDataContext.Order_Details
join o in RepositoryDataContext.Orders
on od.OrderID equals o.OrderID
join p in RepositoryDataContext.Products
on od.ProductID equals p.ProductID
join c in RepositoryDataContext.Customers
on o.CustomerID equals c.CustomerID
where o.OrderID > orderID
select new
{
o.OrderID,
od.UnitPrice,
od.Quantity,
p.ProductName,
c.CompanyName
}).Select<Order, TResult>(selector).ToList();
}
}
我想将linq的结果返回给特定格式的实体(TResult)。 使用Lambda Expression编写此代码很难,因为连接。 此行有例外:选择&lt;订单,TResult&gt; (选择器) 我怎么能解决这个问题? 感谢
答案 0 :(得分:1)
不是创建匿名类型,而是创建POCO或在您的情况下创建订单
select new Order()
{
OrderProperty1 = o.OrderID,
OrderProperty2 = od.UnitPrice,
OrderProperty3 = od.Quantity,
OrderProperty4 = p.ProductName,
OrderProperty5 = c.CompanyName
}).Select<Order, TResult>(selector).ToList();
答案 1 :(得分:0)
在你的第二行:尝试在Select()之前调用ToList()。像这样:
}).ToList().Select<Order, TResult>(selector);
答案 2 :(得分:0)
是否可以迭代“res”并返回TResult列表?