【问题标题】:Extracting data from two Tables using LINQ使用 LINQ 从两个表中提取数据
【发布时间】:2011-11-25 08:22:35
【问题描述】:

我有两个表OrderHead和Labeldata,这两个表都没有任何关系。我想从这两个表中提取数据,我正在使用以下 LINQ:

var ODetail = (
    from o in oContext.OrderHeads
    join l in oContext.LIT04LABELDATA on o.CUSTORD equals l.ORDERNUMBER
    where l.ORDERNUMBER == oNumber
    select new { LIT04LABELDATA = l, OrderHead = o }
).ToList();

我想使用这两个表中的数据,但是我不知道如何从变量oDetail中提取数据,有什么建议吗?

【问题讨论】:

  • 你能指定每个表的预期结果数吗?

标签: c# linq


【解决方案1】:

您正在创建一个匿名类型,它有两种类型作为其属性。与 SQL 查询不同,这里保留了层次结构,因此oDetail 不会包含 CUSTORD,但oDetail.OrderHead 会。您需要查询为:

foreach(var detail in ODetail)
{
    Console.WriteLine( detail.LIT04LABELDATA.ORDERNUMBER + "   " + detail.ORDERHEAD.CUSTORD );
}

【讨论】:

    【解决方案2】:
    var b=oContext.OrderHeads
    .Where(p => oContext.LIT04LABELDATA.Where(q=>q.ORDERNUMBER==oNumber)
          .Select(q => q.ORDERNUMBER).Contains(p.CUSTORD))
    .Select(p => new
    {
        LIT04LABELDATA = oContext.LIT04LABELDATA
           .FirstOrDefault(q=>q.ORDERNUMBER==p.CUSTORD),
        OrderHead =p,
    }).ToList();
    

    【讨论】:

      猜你喜欢
      • 2015-04-19
      • 2013-10-21
      • 2015-02-28
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多