如何使用单个字段联接将SQL转换为LINQ?

时间:2018-07-17 09:50:39

标签: c# sql asp.net linq linq-to-sql

我有一个SQL语句,我想在.NET网站项目中实现。我不了解如何加入特定字段,因为当我从表中选择时这些字段不可用。

我的SQL

  

选择*

     

从[vResidence] c

     

在c.UID = j.UID上加入[vJobs] j

这是我尝试过的LINQ,但是我被困在“ ON”部分:

  

results =(来自vJobs中的j

     

在cr的vResidence中加入cr )

当我尝试“ j。”时,我得到的唯一选择是“等于”。

4 个答案:

答案 0 :(得分:1)

您可以按照以下步骤进行操作。JOIN使用equals关键字连接到表

var result = from r in vResidence
             join j vJobs on r.UID equals  j.UID
             select new {[yourcolnum]};

答案 1 :(得分:1)

您可以尝试

var result = (from j in vJobs
              join cr in vResidence
              on j.UID equals cr.UID
              select new {
                ...
              }).ToList();

答案 2 :(得分:1)

Linq表达式如下:

from t1 in Table1
join t2 in Table2
 on t1.ID equals t2.ID

必须按顺序执行连接子句on:首先是第一个表,然后是第二个表。
必须使用关键字equals

答案 3 :(得分:1)

除上述Linq答案外,我们还可以使用Enumerable.Join扩展名和JOIN表达式来进行Lambda。尝试类似的东西,

        var result = vJobs.Join(vResidence, jb => new { jb.UID }, res => new { res.UID },
                     (jb, res) => new { jb, res })
                     .Select(x => x.jb) //Select the required properties (from both objects) with anonymous object or select left/right object
                     .ToList();

C# Fiddle和示例数据。