我有2张桌子。 ProductOrder
和Member
。
ProductOrder: OrderId, MemberId, DateTimeUTC.
Member : MemberId, FName, LName.
我想返回一个列表,其中包含订单ID,Fname,LName,DateTime UTC。
public List<ProductOrder> GetOrderDetails()
{
using (var db = new StoreEntities())
{
var query = (from pd in db.ProductOrder
join od in db.Member on pd.MemberId equals od.MemberId
orderby od.MemberId
select new
{
pd.OrderId,
od.FName,
od.LName,
pd.DateTimeUTC,
}).ToList();
return query;
}
}
但是这里发生了一些错误。
请帮忙。
答案 0 :(得分:1)
您的查询返回anonymous type个实例的集合。它不应该作为方法返回。
您不能将字段,属性,事件或方法的返回类型声明为具有匿名类型。
来自Anonymous Types (C# Programming Guide) 的
相反,您必须创建新类来存储结果:
public class OrderInfo
{
public int OrderId { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public DateTimeUTC { get; set; }
}
更改方法声明以返回OrderInfo
的集合:
public List<OrderInfo> GetOrderDetails()
并修改查询以返回这些对象的集合:
var query = (from pd in db.ProductOrder
join od in db.Member on pd.MemberId equals od.MemberId
orderby od.MemberId
select new OrderInfo
{
pd.OrderId,
od.FName,
od.LName,
pd.DateTimeUTC,
}).ToList();