Ich habe Mitarbeiter Tabelle mit bigint
Primärschlüsselfeld in Datenbank und Entity-Datenmodell mit Datenbank ersten Ansatz. Employee-Klasse haben diese StrukturUnnötige Konvertierung in Bigint
public partial class Employee
{
public long Emp_No { get; set; }
public string Name { get; set; }
public string Family { get; set; }
...
}
ich diese grundlegende Abfrage mit Entity Framework schreiben
List<long> ids = new List<long>() {1,2,3,4,5,6}
database.Employees.Where(q => ids.Contain(q.Emp_No)).ToList();
Es Abfrage generieren, wie die folgenden:
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))
Wie Sie sehen können gibt es nicht notwendig cast Bigint in Abfrage, während beide Arten von Emp_No
und ids
Array long
sind, verursacht es schlechte Ausführungszeiten speziell wann immer ids
Array hat viele Elemente.
Wie kann ich diese redundante Besetzung entfernen?
Ich kann das nicht tun .. Ich brauche lange Typ –