How do I convert multiple inner joins in SQL to LINQ?(如何将 SQL 中的多个内部联接转换为 LINQ?)
本文介绍了如何将 SQL 中的多个内部联接转换为 LINQ?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经掌握了 LINQ-to-SQL 的基础知识,但我一直在努力让 JOIN 正常工作.我想知道如何将以下内容转换为 LINQ-to-SQL(最好使用方法链,因为这是我的首选格式).
I've got the basics of LINQ-to-SQL down, but I've been struggling trying to get JOINs to work properly. I'd like to know how to convert the following to LINQ-to-SQL (ideally using method chaining, as that is my preferred format).
SELECT c.CompanyId, c.CompanyName,
p.FirstName + ' ' + p.LastName as AccountCoordinator,
p2.FirstName + ' ' + p2.LastName as AccountManager
FROM dbo.Companies c
INNER JOIN dbo.Persons p
ON c.AccountCoordinatorPersonId = p.PersonId
INNER JOIN dbo.Persons p2
ON c.AccountManagerPersonId = p2.PersonId
推荐答案
使用查询语法:
from c in dbo.Companies
join p in dbo.Persons on c.AccountCoordinatorPersonId equals p.PersonId
join p2 in dbo.Persons on c.AccountManagerPersonId equals p2.PersonId
select new
{
c.CompanyId,
c.CompanyName,
AccountCoordinator = p.FirstName + ' ' + p.Surname,
AccountManager = p2.FirstName + ' ' + p2.Surname
}
使用方法链:
dbo.Companies.Join(dbo.Persons,
c => c.AccountCoordinatorPersonId,
p => p.PersonId,
(c, p) => new
{
Company = c,
AccountCoordinator = p.FirstName + ' ' + p.Surname
})
.Join(dbo.Persons,
c => c.Company.AccountManagerPersonId,
p2 => p2.PersonId,
(c, p2) => new
{
c.Company.CompanyId,
c.Company.CompanyName,
c.AccountCoordinator,
AccountManager = p2.FirstName + ' ' + p2.Surname
});
这篇关于如何将 SQL 中的多个内部联接转换为 LINQ?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何将 SQL 中的多个内部联接转换为 LINQ?


猜你喜欢
- 带问号的 nvarchar 列结果 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- 使用 rss + c# 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01