こんにちは私は左外部結合のために作成したlinqクエリを持っています。私はlinqがSqlを作成する理由と、それをより良いクエリにする方法が不思議です。Linqがdbの説明に送るSQLを制御する
はこちらC#のクエリです:
var query=
(
from subject in subjects
join statement in statements.DefaultIfEmpty() on subject.Id equals statement.SubjectId
select subject
);
query.Take(100).Dump();
とSQLそれを送信する:
SELECT TOP (100)
--some fields here
FROM [Subject] AS [t0]
INNER JOIN ((
SELECT NULL AS [EMPTY]
) AS [t1]
LEFT OUTER JOIN [SubjectStatement] AS [t2] ON 1=1) ON [t0].[id] = [t2].[SubjectId]
を私が送ら見たいこと
SELECT TOP(100)
--some fields here
FROM Subject
LEFT OUTER JOIN SubjectStatemnt ON Subject.Id = SubjectStatement.Id
あるに方法はありますSQL Serverに渡されているSQLを制御しますか?
ありがとうございました!なぜこれが必要なのか説明できますか? – JT1979
追加されたリンクを確認してください。具体的には、join節がそれについて少し説明します。 – Silvermind