C# 如何使用单个字段联接将SQL转换为LINQ?
我有一个SQL语句,我想在.NET网站项目中实现它。我不知道如何加入特定字段,因为当我从表中选择时,字段不可用 我的SQL 挑选* 从[vResidence]c 在c.UID=j.UID上加入[vJobs]j 这是我尝试过的LINQ,但我仍停留在“开启”部分: 结果=(来自vJobs中的j 将cr加入vResidence on???)C# 如何使用单个字段联接将SQL转换为LINQ?,c#,sql,asp.net,linq,linq-to-sql,C#,Sql,Asp.net,Linq,Linq To Sql,我有一个SQL语句,我想在.NET网站项目中实现它。我不知道如何加入特定字段,因为当我从表中选择时,字段不可用 我的SQL 挑选* 从[vResidence]c 在c.UID=j.UID上加入[vJobs]j 这是我尝试过的LINQ,但我仍停留在“开启”部分: 结果=(来自vJobs中的j 将cr加入vResidence on???) 当我尝试“j.”时,得到的唯一选项是“equals”。您可以这样做。使用equals关键字连接到表 var result = from r in vResiden
当我尝试“j.”时,得到的唯一选项是“equals”。您可以这样做。使用
equals
关键字连接到表
var result = from r in vResidence
join j vJobs on r.UID equals j.UID
select new {[yourcolnum]};
你可以试试这个
var result = (from j in vJobs
join cr in vResidence
on j.UID equals cr.UID
select new {
...
}).ToList();
Linq表达式如下所示:
from t1 in Table1
join t2 in Table2
on t1.ID equals t2.ID
必须按顺序执行上的join子句:首先是第一个表,然后是第二个表。
必须使用关键字equals
。除了上面的Linq
答案之外,我们还可以使用扩展名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();
使用示例数据。如何从数据库中获取表?如果正确映射了数据库表,则应自动创建类&字段将可用-允许非常类似的联接“j.UID==cr.UID”-如果字段不可用,那么vJobs和vResidence实例是什么?另请参见:我不知道linq使用“equals”而不是==。。。。感谢您一如既往的帮助:不要使用join
,请使用导航属性。这不是Lambda
表达式,而是Linq
。