プロジェクトにEF5を使用し、EntityProfilerを使用してプロファイルを作成しました。クエリに検索を使用すると、生成されるSQLは次のとおりです。
SELECT TOP (2) [Extent1].[ID] AS [ID],
[Extent1].[TargetID] AS [TargetID],
[Extent1].[BranchID] AS [BranchID],
[Extent1].[ApplicationStatus] AS [ApplicationStatus],
[Extent1].[UserID] AS [UserID],
[Extent1].[AssignedOfficer] AS [AssignedOfficer],
[Extent1].[AssignedOfficerCRM] AS [AssignedOfficerCRM],
[Extent1].[RegistrationDate] AS [RegistrationDate],
[Extent1].[DecisionReasons] AS [DecisionReasons],
[Extent1].[DecisionExceptionID] AS [DecisionExceptionID],
[Extent1].[RiskComment] AS [RiskComment],
[Extent1].[CESInformed] AS [CESInformed],
[Extent1].[IsCommited] AS [IsCommited]
FROM [dbo].[Applications] AS [Extent1]
WHERE [Extent1].[ID] = '900100' /* @p0 */
呼び出されるコードは次のとおりです。
public T GetByID(object primaryKey)
{
return DB.Set<T>().Find(primaryKey);
}
だから私の質問は、SQLで生成されるのはSelect Top(2)である理由です