C# linq中的序条件

C# linq中的序条件,c#,linq,C#,Linq,我有两个表,我正在使用linq查询连接它们 带有列ID和列名称的TableA 带有列ID、TableAID和Order的TableB TableB的列TableAID是TableA和TableB之间的链接。请注意,TableB my包含TableA中不存在的行 我的数据如下 TableA ID Name 1 One 2 Two 3 Three TableB ID TableAID Order 1 1 2 2 2 1 3

我有两个表,我正在使用linq查询连接它们

带有列ID和列名称的TableA

带有列ID、TableAID和Order的TableB

TableB的列TableAID是TableA和TableB之间的链接。请注意,TableB my包含TableA中不存在的行

我的数据如下

TableA
ID   Name
1    One
2    Two
3    Three

TableB
ID  TableAID   Order
1   1          2
2   2          1
3   4          1
4   5          1
在我的linq查询中,我想从TableB中选择所有在TableA中具有匹配ID的行,但是列表应该按照TableB的顺序包含TableA中的名称。所以我的数据应该是

Two
One
请帮助构建linq声明

我已经试过了,但不知道该把订单放在哪里

 var MyList = TableA.Where(x => TableB.Any(y => y.TableAID == x.ID))
                         .ToList();

您的查询可能如下例所示

var data = (from a in context.TableA
           from b in context.TableB
           where a.ID == b.TableAID
           select new 
           {
               a.Name,
               b.Order
           }).Distinct().OrderByDescending(x => x.Order).ToList();
foreach(var item in data)
{ 
    Console.WriteLine(item.Name);
}

或者,您可以重写@M.Nasser Javaid answer:

context.TableA.Join(context.TableB, a => a.ID, b => b.TableAID, 
    (a, b) => new {a.Name, b.Order}).Distinct()
.OrderByDescending(x => x.Order)
.Select(x => x.Name).ToList()
请试试这个:

var listresult = (from b1 in TableA
                          join a1 in TableB on b1.ID equals a1.TableAID
                          select new
                          {
                              b1.Name,
                              a1.Order
                          }).ToList().OrderByDescending(x=>x.Order);

        var final = (from m in listresult
                     select m.Name).ToList();

你试过什么吗?你能发布你的linq代码吗?你使用O-RM吗?你有从表到类的映射吗?如果是,您使用什么框架?听起来您想要一个内部联接,您尝试了什么?问题是我在TableA中失去了顺序,因为我想要使用名称。我使用的是实体框架,但我的代码很复杂,所以给出了一个简单的例子。我在问题中添加了我的简单linq