ConcatとUnionのちがい

LINQのConcatはSQLのUNION ALL、LINQのUionはSQLのUNIONに変換されました。

Concat

LINQ

var query = 
    (from e in db.Employee select e.EmployeeName)
    .Concat
    (from d in db.Department select d.DepartmentName);

SQL

SELECT [t2].[EmployeeName]
FROM (
    SELECT [t0].[EmployeeName]
    FROM [dbo].[Employee] AS [t0]
    UNION ALL
    SELECT [t1].[DepartmentName]
    FROM [dbo].[Department] AS [t1]
    ) AS [t2]

Union

LINQ

var query = 
    (from e in db.Employee select e.EmployeeName)
    .Union
    (from d in db.Department select d.DepartmentName);

SQL

SELECT [t2].[EmployeeName]
FROM (
    SELECT [t0].[EmployeeName]
    FROM [dbo].[Employee] AS [t0]
    UNION
    SELECT [t1].[DepartmentName]
    FROM [dbo].[Department] AS [t1]
    ) AS [t2]