如何在基于linq方法的查询中为列名使用别名?

时间:2018-12-11 18:51:29

标签: c# linq

我有两个表:

表1 ,其中包含列:

  • Id(Int,PK)
  • CountryId(int,从FK到Table2)

还有一些

表2 具有列:

  • Id(Int,PK)
  • 名称(navchar)

还有一些

我需要使用类似于此sql查询的基于linq方法的查询发出请求:

SELECT 
    *,
    [Table2].[Name] AS [Country]

FROM  [dbo].[Table1]
INNER JOIN [dbo].[Table2]
ON [Table1].[CountryId] = [Table2].[Id]

我尝试了这个:

db.Table1.Join(db.Table2, s => s.CountryId, c => Id, (s, c) => new {s, Country = c.Name });

它可以工作,但是在结果表中我有一列,其中的国家/地区名称标记为“名称”,而不是“国家/地区”。

在这种情况下,如何在基于linq方法的查询中为列名使用别名?

1 个答案:

答案 0 :(得分:0)

尝试以下

  var results = from tbl1 in db.Table1
                join tbl2 in db.Table2 on tbl1.CountryId = tbl2.Id
                select new {
                            Id = tbl2.Id,
                            ..  // other columns from Table1
                            ..  // other columns from Table1
                            Country = tbl2.Name
                            };