我正在编写一个 LINQ to SQL 语句,并且我使用的是使用 C# 中的子句进行正常内部连接的标准语法。ON
如何在 LINQ to SQL 中表示以下内容:
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
它像这样:
from t1 in db.Table1
join t2 in db.Table2 on t1.field equals t2.field
select new { t1.field2, t2.field3}
最好为您的表提供合理的名称和字段以获得更好的示例。🙂
更新
我认为对于您的查询,这可能更合适:
var dealercontacts = from contact in DealerContact
join dealer in Dealer on contact.DealerId equals dealer.ID
select contact;
由于您正在寻找联系人,而不是经销商。
因为我更喜欢表达式链语法,所以您可以通过以下方式执行此操作:
var dealerContracts = DealerContact.Join(Dealer,
contact => contact.DealerId,
dealer => dealer.DealerId,
(contact, dealer) => contact);
要扩展智能人类的表达式链语法答案:
如果要对连接在一起的两个表中的字段执行操作(例如筛选或选择),而不是仅在这两个表中的一个上执行操作,则可以在 Join 方法的最终参数的 lambda 表达式中创建一个新对象,其中包含这两个表,例如:
var dealerInfo = DealerContact.Join(Dealer,
dc => dc.DealerId,
d => d.DealerId,
(dc, d) => new { DealerContact = dc, Dealer = d })
.Where(dc_d => dc_d.Dealer.FirstName == "Glenn"
&& dc_d.DealerContact.City == "Chicago")
.Select(dc_d => new {
dc_d.Dealer.DealerID,
dc_d.Dealer.FirstName,
dc_d.Dealer.LastName,
dc_d.DealerContact.City,
dc_d.DealerContact.State });
有趣的部分是该示例第 4 行中的 lambda 表达式:
(dc, d) => new { DealerContact = dc, Dealer = d }
…我们构造一个新的匿名类型对象,该对象具有 DealerContact 和 Dealer 记录的属性,以及它们的所有字段。
然后,我们可以在筛选和选择结果时使用这些记录中的字段,如示例的其余部分所示,该示例用作我们构建的匿名对象的名称,该对象具有 DealerContact 和 Dealer 记录作为其属性。dc_d
模板简介:该模板名称为【 C#中LINQ to SQL 中内部连接的语法是什么?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。