Я использую Entity Framework в качестве поставщика данных. И есть одна конкретная таблица, которая не сгенерировала правильный оператор sql. Хотя я передал условие запроса, но Entity Framework по-прежнему генерирует оператор sql для всей таблицы.
Код такой:
public IList<Device> GetDeviceByNodeId(string nodeId)
=> GetModels(device => device.DeviceNodeId == nodeId).ToList();
public virtual IEnumerable<T> GetModels(Func<T, bool> exp)
=> EntitySet.Where(exp);
И сгенерированный оператор sql выглядит так:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[DeviceTypeId] AS [DeviceTypeId],
[Extent1].[OriginalDeviceId] AS [OriginalDeviceId],
[Extent1].[DeviceCode] AS [DeviceCode],
[Extent1].[StatCode] AS [StatCode],
[Extent1].[DevicePassword] AS [DevicePassword],
[Extent1].[DeviceModuleGuid] AS [DeviceModuleGuid],
[Extent1].[DeviceNodeId] AS [DeviceNodeId],
[Extent1].[FirmwareSetId] AS [FirmwareSetId],
[Extent1].[ProjectId] AS [ProjectId],
[Extent1].[StartTime] AS [StartTime],
[Extent1].[PreEndTime] AS [PreEndTime],
[Extent1].[EndTime] AS [EndTime],
[Extent1].[Status] AS [Status],
[Extent1].[CameraId] AS [CameraId],
[Extent1].[DomainId] AS [DomainId],
[Extent1].[CreateDateTime] AS [CreateDateTime],
[Extent1].[CreateUserId] AS [CreateUserId],
[Extent1].[LastUpdateDateTime] AS [LastUpdateDateTime],
[Extent1].[LastUpdateUserId] AS [LastUpdateUserId],
[Extent1].[IsDeleted] AS [IsDeleted],
[Extent1].[IsEnabled] AS [IsEnabled]
FROM [dbo].[Devices] AS [Extent1]
Я использовал linq неправильно?