简体   繁体   English

具有多个内部联接和别名的SQL查询的LINQ语法

[英]LINQ syntax for SQL query with multiple inner joins and aliases

I am working on creating a C# LINQ statement from a SQL query with multiple joins and aliases. 我正在根据具有多个联接和别名的SQL查询创建C#LINQ语句。 I am having some trouble constructing the LINQ. 我在构建LINQ时遇到了一些麻烦。

The SQL: SQL:

SELECT 
 store.Name as 'Store', 
 store.CreatedOn as 'StoreCreated', 
 supplier.Name as 'Supplier',
 supplier.CreatedOn as 'SupplierCreated',
 farm.Name as 'Farm',
 farm.CreatedOn as 'FarmCreated', 
 FROM Users store 

INNER JOIN UserRelationship toSupplier on store.ID = toSupplier.YId 
INNER JOIN Users supplier ON supplier.ID = toSupplier.XId
INNER JOIN UserRelationship toFarm ON store.ID = toFarm.XId
INNER JOIN Users farm ON farm.ID = toFarm.YId

WHERE 

 store.Active= '1'
 AND
 supplier.Active = '1'
 AND
 farm.Active = '1'

This returns rows showing the relationships between the three parties and the dates. 这将返回显示三方之间和日期之间关系的行。

So, far, I've got the following LINQ: 到目前为止,我有以下LINQ:

 var newUserList = from store in Users
                   join toSupplier in UserRelationship on store.ID = toSupplier.YId
                   join supplier in Users on supplier.ID = toSupplier.XId
                   join toFarm in UserRelationship on store.ID = toFarm.XId
                   join farm in Users on farm.ID = toFarm.YId

Am I on the right track? 我在正确的轨道上吗? Any help would be appreciated. 任何帮助,将不胜感激。

LINQ join syntax uses equals keyword instead of = in join condition: LINQ join语法在连接条件中使用equals关键字而不是=

var newUserList = from store in Users
                  join toSupplier in UserRelationship on store.ID equals toSupplier.YId
                  join supplier in Users on supplier.ID equals toSupplier.XId
                  join toFarm in UserRelationship on store.ID equals toFarm.XId
                  join farm in Users on farm.ID equals toFarm.YId
                  select ...

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

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