Mam tabelę pracowników z bigint
podstawowym polem klucza w bazie danych i modelu danych jednostki z pierwszym podejściem do bazy danych. klasa pracownik ma taką strukturęNiepotrzebna konwersja do biginta
public partial class Employee
{
public long Emp_No { get; set; }
public string Name { get; set; }
public string Family { get; set; }
...
}
Piszę to podstawowe kwerendy z Entity Framework
List<long> ids = new List<long>() {1,2,3,4,5,6}
database.Employees.Where(q => ids.Contain(q.Emp_No)).ToList();
generować zapytania jak:
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))
Jak widać nie jest konieczne oddanych do bigint w zapytaniu, podczas gdy oba typy tablic Emp_No
i ids
są long
, Powoduje złe czasy wykonania specjalnie, gdy tylko ids
array ma wiele elementów.
Jak mogę usunąć tę nadmiarową obsadę?
Nie mogę tego zrobić. Potrzebuję długiego typu –