简体   繁体   English

C#LINQ仅需一行就可以加入

[英]C# LINQ join With Just One Row

I'm trying to make a query that grabs a single row from an SQL database and updates it. 我正在尝试进行查询,以从SQL数据库中获取一行并进行更新。

TableA
AId
AValue

TableB
BId
AId
BValue

Ok, so TableA and TableB are linked by AId. 好的,因此TableA和TableB由AId链接。 I want to select a row in TableB based on AValue using a join. 我想使用联接基于AValue在TableB中选择一行。 The following query is what I have and only grabs a value from TableB based on AId, I just don't know how to grab a row from TableB using AValue. 以下查询是我所拥有的,并且仅从基于AId的TableB中获取值,我只是不知道如何使用AValue从TableB中获取行。 I know you would need to use a join, but I'm not sure how to accomplish that. 我知道您将需要使用联接,但是我不确定如何实现。

var row = DbObject.TableB.Single(x => x.AId == 1)
row.BValue = 1;
DbObject.SubmitChanges();

Below is a LINQ query to do what you are asking. 下面是一个LINQ查询,可以执行您要的操作。

var row = (from b in TableB
        join a in TableA on a.AId equals b.AId
        where a.AValue = yourValue).Single();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM