У меня есть таблица сотрудников с bigint
поле первичного ключа в базе данных и модели данных сущности с первым подходом базы данных. Класс Employee имеет такую структуруНенужное преобразование в bigint
public partial class Employee
{
public long Emp_No { get; set; }
public string Name { get; set; }
public string Family { get; set; }
...
}
я пишу этот базовый запрос с Entity Framework
List<long> ids = new List<long>() {1,2,3,4,5,6}
database.Employees.Where(q => ids.Contain(q.Emp_No)).ToList();
Он Сформировать запрос в следующем виде:
SELECT
[Extent1].[Emp_No] AS [Emp_No],
[Extent1].[Name] AS [Name],
[Extent1].[Family] AS [Family],
...
FROM [dbo].[Employee] AS [Extent1]
WHERE [Extent1].[Emp_No] IN (cast(0 as bigint),
cast(1 as bigint),
cast(2 as bigint),
cast(3 as bigint),
cast(4 as bigint),
cast(5 as bigint),
cast(6 as bigint))
Как вы можете видеть, что есть ненужное приведение к bigint в запросе, в то время как оба типа массива Emp_No
и ids
: long
, он вызывает плохие времена выполнения, когда ids
массив имеет много элементов.
Как удалить эту резервную копию?
Я не могу этого сделать .. Мне нужен длинный тип –