Tôi có bảng nhân viên với bigint
trường khóa chính trong mô hình dữ liệu cơ sở dữ liệu và thực thể với phương pháp tiếp cận cơ sở dữ liệu đầu tiên. class Employee có cấu trúc nàyChuyển đổi không cần thiết thành bigint
public partial class Employee
{
public long Emp_No { get; set; }
public string Name { get; set; }
public string Family { get; set; }
...
}
tôi viết truy vấn cơ bản này với Entity Framework
List<long> ids = new List<long>() {1,2,3,4,5,6}
database.Employees.Where(q => ids.Contain(q.Emp_No)).ToList();
Nó Tạo truy vấn như sau:
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))
Như bạn có thể thấy có dàn diễn viên không cần thiết để bigint trong truy vấn trong khi cả hai loại Emp_No
và ids
mảng là long
, Nó gây ra thời gian thực thi xấu đặc biệt bất cứ khi nào ids
mảng có nhiều yếu tố.
Tôi làm cách nào để xóa dàn diễn viên dư thừa này?
Tôi không thể làm điều này .. Tôi cần loại dài –