Używam Entity Framework 6.1, i mam kod jak poniżej:Dlaczego metoda Znajdź generuje zapytanie TOP (2)?
Brand b;
using(var ctx = new KokosEntities())
{
try
{
b = ctx.Brands.Find(_brands[brandName].Id);
return b;
}
catch (Exception ex)
{
_logger.Log(LogLevel.Error, ex);
}
}
A to generuje:
N'SELECT TOP (2)
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[OpenCartId] AS [OpenCartId]
FROM [dbo].[Brands] AS [Extent1]
WHERE [Extent1].[Id] = @p0',N'@p0 int'
Find
metoda zwraca pojedynczy wynik, ale to generuje TOP(2)
zapytania zamiast 1
. Czemu?
Uwaga: Jestem pewien, że przekazuję prawidłową Id
metody i tak, Id
jest kluczem podstawowym.
+1 dla źródła, zamiast spekulacji. –