因为
SELECT * FROM visits where id not in (1,2,3,4,5,6,...)
有100个ID真的很慢,我想使用一个声明的表并执行一个“不存在”的地方'就像它一样:
DECLARE @list Table(ID int);
INSERT INTO @list VALUES (192000),(934282),(991116),(235091),(89709),(282605),(339057),(368062),(512013),(536548),(94714),(197477),(654839),(848893),(15917),(476700),(909048),(536400),(823404),(777915),(228055),(492591),(439780),(493784),(732689),(328185),(620171),(183835),(373595),(536869), ...;
INSERT INTO @list VALUES (3),(5);
SELECT TOP (1000) [Id]
,[IsDeleted]
,[Url]
,[Username]
,[VisitDate]
FROM [dbo].[Site].[Visits] v
where not exists (select id from @list l where l.ID = v.Id)
但是,我想使用实体框架核心2.0的LINQ到实体来在访问中添加其他.Where()子句和.OrderBy,.Take(),...功能。 / p>
此查询是否可以转换为LINQ-To-Entities或至少转换为IQueryable,我可以在之后使用扩展函数? 我使用的是ASP.NET Core 2.0.5,数据库是MSSQL Server 2016。