C# 如何使用unioan和linq中的嵌套?

C# 如何使用unioan和linq中的嵌套?,c#,.net,visual-studio-2008,linq,C#,.net,Visual Studio 2008,Linq,如何将sql转换为linq。我不理解嵌套选择查询。我需要linq代码。请帮助我:(((( 林克: 如果我写上述代码,错误如下: 这适合你的需要吗 var id = (from task in stock.CTasks select new { task.id, task.workorder, jobseqno= task.jobseqno } ) .Union(from card in stock.NonRoutineCards select new { card.id, card.

如何将sql转换为linq。我不理解嵌套选择查询。我需要linq代码。请帮助我:((((

林克:

如果我写上述代码,错误如下:


这适合你的需要吗

var id = 
  (from task in stock.CTasks select new { task.id, task.workorder, jobseqno= task.jobseqno } )
  .Union(from card in stock.NonRoutineCards select new { card.id, card.workorderno, jobseqno = card.cardno })
  .Union(from card in stock.AdditionalWorkCards select new { card.id, card.workorderno, jobseqno = card.cardno })
  .Where(x => x.workorderno.TrimEnd() == ToNo && x.jobseqno == ToSeq)
  .FirstOrDefault();

SQL代码将多个表连接在一起:您还应该对UNION ALL进行一些特定的读取,不知道它是什么,但它必须是某种连接。我添加了一个图片和linq查询,这是因为您的一个字段名为“jobseqno”,而另一个子查询中的同一个字段名为“cardno”。在这两种情况下都显式指定字段名:…new{task.ID,task.workorderno,Num=(int)task.jobseqno}…新的{card.ID,card.workorderno,Num=card.cardno}…其中(…x.Num==ToSeq)我刚才在前面的评论中告诉过你:)
  var id = 
  (from task in stock.CTasks select new { task.id, task.workorder, task.jobseqno } )
  .Union(from card in stock.NonRoutineCards select new { card.id, card.workorderno, card.cardno })
  .Union(from card in stock.AdditionalWorkCards select new { card.id, card.workorderno, card.cardno })
  .Where(x => x.workorderno.TrimEnd() == ToNo && x.jobseqno == ToSeq)
  .FirstOrDefault();
var id = 
  (from task in stock.CTasks select new { task.id, task.workorder, jobseqno= task.jobseqno } )
  .Union(from card in stock.NonRoutineCards select new { card.id, card.workorderno, jobseqno = card.cardno })
  .Union(from card in stock.AdditionalWorkCards select new { card.id, card.workorderno, jobseqno = card.cardno })
  .Where(x => x.workorderno.TrimEnd() == ToNo && x.jobseqno == ToSeq)
  .FirstOrDefault();