【问题标题】:Joining query in Linq在 Linq 中加入查询
【发布时间】:2014-04-21 10:15:56
【问题描述】:

我有 2 张桌子。 ProductOrderMember

ProductOrder: OrderId, MemberId, DateTimeUTC.
Member : MemberId, FName, LName.

我想重新调整包含 OrderId、Fname、LName、DateTimeUTC 的列表。

 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;
            }

        }

但是这里发生了一些错误。

请帮忙。

【问题讨论】:

  • 您的退货清单(查询)不是ProductOrder 类型。需要return public List&lt;YourNewObjectHere&gt; GetOrderDetails()
  • 您的 ProductOrder 模型与查询结果不匹配。确保查询结果与 ProductOrder 模型匹配。

标签: sql linq linq-to-sql linq-to-entities


【解决方案1】:

您的查询返回anonymous type 实例的集合。它不应该从 as 方法返回。

您不能声明字段、属性、事件或方法的返回类型为匿名类型

来自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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多