我的asp.net mvc中有以下操作方法,它使用IPagedList
显示对象列表:
public ActionResult Index(string searchTerm = "", int page = 1, string sort = "")
{
string withOutSpace = searchTerm.Trim();
ViewBag.searchTerm = searchTerm;
ViewBag.CurrentSortOrder = sort;
IPagedList<ITServer> servers = null;
int pagesize;
bool succeed = int.TryParse(System.Web.Configuration.WebConfigurationManager.AppSettings["TechPageSize"], out pagesize);
if (String.IsNullOrEmpty(sort))
{
servers = repository.AllFindServers(withOutSpace).OrderBy(a => a.Technology.PartialTag).ToPagedList(page, pagesize);}
populateViewData(servers.Select(a => a.Technology.IT360ID.Value).ToArray());
return PartialView("_PagedServerTable", servers);
}
}
action方法调用这两个存储库方法:
public IQueryable<ITServer> AllFindServers(string q,bool forautocomplete = false)
{
return from server in ITServersCore()
}
&安培;
public IQueryable<ITServer> ITServersCore()
{
return IT.ITServers
.Include(a3 => a3.ITRack.Technology)
.Include(a3 => a3.ITRack.DataCenter)
.Include(a5 => a5.Technology)
.Include(a6 => a6.ITVirtualMachines)//nav
.Include(a11 => a11.ITServers1)//nav
.Include(a13 => a13.ITFirewalls)//nav
.Include(a14 => a14.ITSwitches)//nav
.Include(a14 => a14.ITRouters);//nav
}
但是上面将生成一个非常长的SQL语句,包含大量冗余代码(我基本上删除了生成的SQL的某些部分,因为它会超出在此处添加新问题时允许的字符数论坛!! 1): -
exec sp_executesql N'SELECT
//code goes hre
CAST(NULL AS varbinary(1)) AS [C41],
CAST(NULL AS bigint) AS [C42]
FROM (SELECT TOP (15) [Project1].[ITServerID] AS [ITServerID], [Project1].[ServerModelID] AS [ServerModelID], [Project1].[ILOIP] AS [ILOIP], [Project1].[RackID] AS [RackID], [Project1].[StatusID] AS [StatusID], [Project1].[BackUpStatusID] AS [BackUpStatusID], [Project1].[RoleID] AS [RoleID], [Project1].[OperatingSystemID] AS [OperatingSystemID], [Project1].[VirtualCenterID] AS [VirtualCenterID], [Project1].[Comment] AS [Comment], [Project1].[timestamp] AS [timestamp], [Project1].[IT360SiteID] AS [IT360SiteID], [Project1].[TechnologyID] AS [TechnologyID], [Project1].[ITRackID] AS [ITRackID], [Project1].[TechnologyID1] AS [TechnologyID1], [Project1].[PartialTag] AS [PartialTag], [Project1].[ITRackID1] AS [ITRackID1], [Project1].[ITRackID2] AS [ITRackID2], [Project1].[DataCenterID] AS [DataCenterID], [Project1].[ZoneID] AS [ZoneID], [Project1].[timestamp1] AS [timestamp1], [Project1].[IT360SiteID1] AS [IT360SiteID1], [Project1].[TechnologyID2] AS [TechnologyID2], [Project1].[Tag] AS [Tag], [Project1].[IsDeleted] AS [IsDeleted], [Project1].[timestamp2] AS [timestamp2], [Project1].[TypeID] AS [TypeID], [Project1].[StartDate] AS [StartDate], [Project1].[IT360ID] AS [IT360ID], [Project1].[IsCompleted] AS [IsCompleted], [Project1].[PartialTag1] AS [PartialTag1], [Project1].[ITRackID3] AS [ITRackID3], [Project1].[ITServerID1] AS [ITServerID1], [Project1].[ID] AS [ID], [Project1].[Name] AS [Name], [Project1].[timestamp3] AS [timestamp3], [Project1].[TechnologyID3] AS [TechnologyID3], [Project1].[Tag1] AS [Tag1], [Project1].[IsDeleted1] AS [IsDeleted1], [Project1].[timestamp4] AS [timestamp4], [Project1].[TypeID1] AS [TypeID1], [Project1].[StartDate1] AS [StartDate1], [Project1].[IT360ID1] AS [IT360ID1], [Project1].[IsCompleted1] AS [IsCompleted1], [Project1].[PartialTag2] AS [PartialTag2], [Project1].[ITRackID4] AS [ITRackID4]
FROM ( SELECT [Project1].[ITServerID] AS [ITServerID], [Project1].[ServerModelID] AS [ServerModelID], [Project1].[ILOIP] AS [ILOIP], [Project1].[RackID] AS [RackID], [Project1].[StatusID] AS [StatusID], [Project1].[BackUpStatusID] AS [BackUpStatusID], [Project1].[RoleID] AS [RoleID], [Project1].[OperatingSystemID] AS [OperatingSystemID], [Project1].[VirtualCenterID] AS [VirtualCenterID], [Project1].[Comment] AS [Comment], [Project1].[timestamp] AS [timestamp], [Project1].[IT360SiteID] AS [IT360SiteID], [Project1].[TechnologyID] AS [TechnologyID], [Project1].[ITRackID] AS [ITRackID], [Project1].[TechnologyID1] AS [TechnologyID1], [Project1].[PartialTag] AS [PartialTag], [Project1].[ITRackID1] AS [ITRackID1], [Project1].[ITRackID2] AS [ITRackID2], [Project1].[DataCenterID] AS [DataCenterID], [Project1].[ZoneID] AS [ZoneID], [Project1].[timestamp1] AS [timestamp1], [Project1].[IT360SiteID1] AS [IT360SiteID1], [Project1].[TechnologyID2] AS [TechnologyID2], [Project1].[Tag] AS [Tag], [Project1].[IsDeleted] AS [IsDeleted], [Project1].[timestamp2] AS [timestamp2], [Project1].[TypeID] AS [TypeID], [Project1].[StartDate] AS [StartDate], [Project1].[IT360ID] AS [IT360ID], [Project1].[IsCompleted] AS [IsCompleted], [Project1].[PartialTag1] AS [PartialTag1], [Project1].[ITRackID3] AS [ITRackID3], [Project1].[ITServerID1] AS [ITServerID1], [Project1].[ID] AS [ID], [Project1].[Name] AS [Name], [Project1].[timestamp3] AS [timestamp3], [Project1].[TechnologyID3] AS [TechnologyID3], [Project1].[Tag1] AS [Tag1], [Project1].[IsDeleted1] AS [IsDeleted1], [Project1].[timestamp4] AS [timestamp4], [Project1].[TypeID1] AS [TypeID1], [Project1].[StartDate1] AS [StartDate1], [Project1].[IT360ID1] AS [IT360ID1], [Project1].[IsCompleted1] AS [IsCompleted1], [Project1].[PartialTag2] AS [PartialTag2], [Project1].[ITRackID4] AS [ITRackID4], row_number() OVER (ORDER BY [Project1].[PartialTag] ASC) AS [row_number]
FROM ( SELECT
[Extent1].[ITServerID] AS [ITServerID],
//code goe here
FROM [dbo].[ITServers] AS [Extent1]
INNER JOIN (SELECT [Extent2].[TechnologyID] AS [TechnologyID], [Extent2].[Tag] AS [Tag], [Extent3].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent2]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent3] ON [Extent2].[TechnologyID] = [Extent3].[ITRackID] ) AS [Join1] ON [Extent1].[ITServerID] = [Join1].[TechnologyID]
INNER JOIN (SELECT [Extent4].[TechnologyID] AS [TechnologyID], [Extent4].[PartialTag] AS [PartialTag], [Extent5].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent4]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent5] ON [Extent4].[TechnologyID] = [Extent5].[ITRackID] ) AS [Join3] ON [Extent1].[ITServerID] = [Join3].[TechnologyID]
INNER JOIN [dbo].[ITRacks] AS [Extent6] ON [Extent1].[RackID] = [Extent6].[ITRackID]
LEFT OUTER JOIN (SELECT [Extent7].[TechnologyID] AS [TechnologyID], [Extent7].[Tag] AS [Tag], [Extent7].[IsDeleted] AS [IsDeleted], [Extent7].[timestamp] AS [timestamp5], [Extent7].[TypeID] AS [TypeID], [Extent7].[StartDate] AS [StartDate], [Extent7].[IT360ID] AS [IT360ID], [Extent7].[IsCompleted] AS [IsCompleted], [Extent7].[PartialTag] AS [PartialTag], [Extent8].[ITRackID] AS [ITRackID], [Extent9].[ITServerID] AS [ITServerID]
FROM [dbo].[Technology] AS [Extent7]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent8] ON [Extent7].[TechnologyID] = [Extent8].[ITRackID]
LEFT OUTER JOIN [dbo].[ITServers] AS [Extent9] ON [Extent7].[TechnologyID] = [Extent9].[ITServerID] ) AS [Join7] ON [Extent1].[RackID] = [Join7].[ITRackID]
INNER JOIN [dbo].[DataCenter] AS [Extent10] ON [Extent6].[DataCenterID] = [Extent10].[ID]
INNER JOIN (SELECT [Extent11].[TechnologyID] AS [TechnologyID], [Extent11].[Tag] AS [Tag], [Extent11].[IsDeleted] AS [IsDeleted], [Extent11].[timestamp] AS [timestamp6], [Extent11].[TypeID] AS [TypeID], [Extent11].[StartDate] AS [StartDate], [Extent11].[IT360ID] AS [IT360ID], [Extent11].[IsCompleted] AS [IsCompleted], [Extent11].[PartialTag] AS [PartialTag], [Extent12].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent11]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent12] ON [Extent11].[TechnologyID] = [Extent12].[ITRackID] ) AS [Join10] ON [Extent1].[ITServerID] = [Join10].[TechnologyID]
WHERE (@p__linq__0 IS NULL) OR (( CAST(LEN(@p__linq__0) AS int)) = 0) OR (( CAST(CHARINDEX(UPPER(@p__linq__1), UPPER([Join1].[Tag])) AS int)) = 1)
) AS [Project1]
) AS [Project1]
WHERE [Project1].[row_number] > 225
ORDER BY [Project1].[PartialTag] ASC ) AS [Limit1]
LEFT OUTER JOIN [dbo].[ITVirtualMachines] AS [Extent13] ON [Limit1].[ITServerID] = [Extent13].[ServerID]
UNION ALL
SELECT
2 AS [C1],
//code goes here
FROM (SELECT TOP (15) [Project3].[ITServerID] AS [ITServerID], [Project3].[ServerModelID] AS [ServerModelID], [Project3].[ILOIP] AS [ILOIP], [Project3].[RackID] AS [RackID], [Project3].[StatusID] AS [StatusID], [Project3].[BackUpStatusID] AS [BackUpStatusID], [Project3].[RoleID] AS [RoleID], [Project3].[OperatingSystemID] AS [OperatingSystemID], [Project3].[VirtualCenterID] AS [VirtualCenterID], [Project3].[Comment] AS [Comment], [Project3].[timestamp] AS [timestamp], [Project3].[IT360SiteID] AS [IT360SiteID], [Project3].[TechnologyID] AS [TechnologyID], [Project3].[ITRackID] AS [ITRackID], [Project3].[TechnologyID1] AS [TechnologyID1], [Project3].[PartialTag] AS [PartialTag], [Project3].[ITRackID1] AS [ITRackID1], [Project3].[ITRackID2] AS [ITRackID2], [Project3].[DataCenterID] AS [DataCenterID], [Project3].[ZoneID] AS [ZoneID], [Project3].[timestamp1] AS [timestamp1], [Project3].[IT360SiteID1] AS [IT360SiteID1], [Project3].[TechnologyID2] AS [TechnologyID2], [Project3].[Tag] AS [Tag], [Project3].[IsDeleted] AS [IsDeleted], [Project3].[timestamp2] AS [timestamp2], [Project3].[TypeID] AS [TypeID], [Project3].[StartDate] AS [StartDate], [Project3].[IT360ID] AS [IT360ID], [Project3].[IsCompleted] AS [IsCompleted], [Project3].[PartialTag1] AS [PartialTag1], [Project3].[ITRackID3] AS [ITRackID3], [Project3].[ITServerID1] AS [ITServerID1], [Project3].[ID] AS [ID], [Project3].[Name] AS [Name], [Project3].[timestamp3] AS [timestamp3], [Project3].[TechnologyID3] AS [TechnologyID3], [Project3].[Tag1] AS [Tag1], [Project3].[IsDeleted1] AS [IsDeleted1], [Project3].[timestamp4] AS [timestamp4], [Project3].[TypeID1] AS [TypeID1], [Project3].[StartDate1] AS [StartDate1], [Project3].[IT360ID1] AS [IT360ID1], [Project3].[IsCompleted1] AS [IsCompleted1], [Project3].[PartialTag2] AS [PartialTag2], [Project3].[ITRackID4] AS [ITRackID4]
FROM ( SELECT [Project3].[ITServerID] AS [ITServerID], [Project3].[ServerModelID] AS [ServerModelID], [Project3].[ILOIP] AS [ILOIP], [Project3].[RackID] AS [RackID], [Project3].[StatusID] AS [StatusID], [Project3].[BackUpStatusID] AS [BackUpStatusID], [Project3].[RoleID] AS [RoleID], [Project3].[OperatingSystemID] AS [OperatingSystemID], [Project3].[VirtualCenterID] AS [VirtualCenterID], [Project3].[Comment] AS [Comment], [Project3].[timestamp] AS [timestamp], [Project3].[IT360SiteID] AS [IT360SiteID], [Project3].[TechnologyID] AS [TechnologyID], [Project3].[ITRackID] AS [ITRackID], [Project3].[TechnologyID1] AS [TechnologyID1], [Project3].[PartialTag] AS [PartialTag], [Project3].[ITRackID1] AS [ITRackID1], [Project3].[ITRackID2] AS [ITRackID2], [Project3].[DataCenterID] AS [DataCenterID], [Project3].[ZoneID] AS [ZoneID], [Project3].[timestamp1] AS [timestamp1], [Project3].[IT360SiteID1] AS [IT360SiteID1], [Project3].[TechnologyID2] AS [TechnologyID2], [Project3].[Tag] AS [Tag], [Project3].[IsDeleted] AS [IsDeleted], [Project3].[timestamp2] AS [timestamp2], [Project3].[TypeID] AS [TypeID], [Project3].[StartDate] AS [StartDate], [Project3].[IT360ID] AS [IT360ID], [Project3].[IsCompleted] AS [IsCompleted], [Project3].[PartialTag1] AS [PartialTag1], [Project3].[ITRackID3] AS [ITRackID3], [Project3].[ITServerID1] AS [ITServerID1], [Project3].[ID] AS [ID], [Project3].[Name] AS [Name], [Project3].[timestamp3] AS [timestamp3], [Project3].[TechnologyID3] AS [TechnologyID3], [Project3].[Tag1] AS [Tag1], [Project3].[IsDeleted1] AS [IsDeleted1], [Project3].[timestamp4] AS [timestamp4], [Project3].[TypeID1] AS [TypeID1], [Project3].[StartDate1] AS [StartDate1], [Project3].[IT360ID1] AS [IT360ID1], [Project3].[IsCompleted1] AS [IsCompleted1], [Project3].[PartialTag2] AS [PartialTag2], [Project3].[ITRackID4] AS [ITRackID4], row_number() OVER (ORDER BY [Project3].[PartialTag] ASC) AS [row_number]
FROM ( SELECT
//code goes here
INNER JOIN (SELECT [Extent15].[TechnologyID] AS [TechnologyID], [Extent15].[Tag] AS [Tag], [Extent16].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent15]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent16] ON [Extent15].[TechnologyID] = [Extent16].[ITRackID] ) AS [Join13] ON [Extent14].[ITServerID] = [Join13].[TechnologyID]
INNER JOIN (SELECT [Extent17].[TechnologyID] AS [TechnologyID], [Extent17].[PartialTag] AS [PartialTag], [Extent18].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent17]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent18] ON [Extent17].[TechnologyID] = [Extent18].[ITRackID] ) AS [Join15] ON [Extent14].[ITServerID] = [Join15].[TechnologyID]
INNER JOIN [dbo].[ITRacks] AS [Extent19] ON [Extent14].[RackID] = [Extent19].[ITRackID]
LEFT OUTER JOIN (SELECT [Extent20].[TechnologyID] AS [TechnologyID], [Extent20].[Tag] AS [Tag], [Extent20].[IsDeleted] AS [IsDeleted], [Extent20].[timestamp] AS [timestamp7], [Extent20].[TypeID] AS [TypeID], [Extent20].[StartDate] AS [StartDate], [Extent20].[IT360ID] AS [IT360ID], [Extent20].[IsCompleted] AS [IsCompleted], [Extent20].[PartialTag] AS [PartialTag], [Extent21].[ITRackID] AS [ITRackID], [Extent22].[ITServerID] AS [ITServerID]
FROM [dbo].[Technology] AS [Extent20]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent21] ON [Extent20].[TechnologyID] = [Extent21].[ITRackID]
LEFT OUTER JOIN [dbo].[ITServers] AS [Extent22] ON [Extent20].[TechnologyID] = [Extent22].[ITServerID] ) AS [Join19] ON [Extent14].[RackID] = [Join19].[ITRackID]
INNER JOIN [dbo].[DataCenter] AS [Extent23] ON [Extent19].[DataCenterID] = [Extent23].[ID]
INNER JOIN (SELECT [Extent24].[TechnologyID] AS [TechnologyID], [Extent24].[Tag] AS [Tag], [Extent24].[IsDeleted] AS [IsDeleted], [Extent24].[timestamp] AS [timestamp8], [Extent24].[TypeID] AS [TypeID], [Extent24].[StartDate] AS [StartDate], [Extent24].[IT360ID] AS [IT360ID], [Extent24].[IsCompleted] AS [IsCompleted], [Extent24].[PartialTag] AS [PartialTag], [Extent25].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent24]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent25] ON [Extent24].[TechnologyID] = [Extent25].[ITRackID] ) AS [Join22] ON [Extent14].[ITServerID] = [Join22].[TechnologyID]
WHERE (@p__linq__0 IS NULL) OR (( CAST(LEN(@p__linq__0) AS int)) = 0) OR (( CAST(CHARINDEX(UPPER(@p__linq__1), UPPER([Join13].[Tag])) AS int)) = 1)
) AS [Project3]
) AS [Project3]
WHERE [Project3].[row_number] > 225
ORDER BY [Project3].[PartialTag] ASC ) AS [Limit2]
INNER JOIN [dbo].[ITServers] AS [Extent26] ON [Limit2].[ITServerID] = [Extent26].[VirtualCenterID]) AS [UnionAll1]
UNION ALL
SELECT
3 AS [C1],
//code goes here
FROM (SELECT TOP (15) [Project6].[ITServerID] AS [ITServerID], [Project6].[ServerModelID] AS [ServerModelID], [Project6].[ILOIP] AS [ILOIP], [Project6].[RackID] AS [RackID], [Project6].[StatusID] AS [StatusID], [Project6].[BackUpStatusID] AS [BackUpStatusID], [Project6].[RoleID] AS [RoleID], [Project6].[OperatingSystemID] AS [OperatingSystemID], [Project6].[VirtualCenterID] AS [VirtualCenterID], [Project6].[Comment] AS [Comment], [Project6].[timestamp] AS [timestamp], [Project6].[IT360SiteID] AS [IT360SiteID], [Project6].[TechnologyID] AS [TechnologyID], [Project6].[ITRackID] AS [ITRackID], [Project6].[TechnologyID1] AS [TechnologyID1], [Project6].[PartialTag] AS [PartialTag], [Project6].[ITRackID1] AS [ITRackID1], [Project6].[ITRackID2] AS [ITRackID2], [Project6].[DataCenterID] AS [DataCenterID], [Project6].[ZoneID] AS [ZoneID], [Project6].[timestamp1] AS [timestamp1], [Project6].[IT360SiteID1] AS [IT360SiteID1], [Project6].[TechnologyID2] AS [TechnologyID2], [Project6].[Tag] AS [Tag], [Project6].[IsDeleted] AS [IsDeleted], [Project6].[timestamp2] AS [timestamp2], [Project6].[TypeID] AS [TypeID], [Project6].[StartDate] AS [StartDate], [Project6].[IT360ID] AS [IT360ID], [Project6].[IsCompleted] AS [IsCompleted], [Project6].[PartialTag1] AS [PartialTag1], [Project6].[ITRackID3] AS [ITRackID3], [Project6].[ITServerID1] AS [ITServerID1], [Project6].[ID] AS [ID], [Project6].[Name] AS [Name], [Project6].[timestamp3] AS [timestamp3], [Project6].[TechnologyID3] AS [TechnologyID3], [Project6].[Tag1] AS [Tag1], [Project6].[IsDeleted1] AS [IsDeleted1], [Project6].[timestamp4] AS [timestamp4], [Project6].[TypeID1] AS [TypeID1], [Project6].[StartDate1] AS [StartDate1], [Project6].[IT360ID1] AS [IT360ID1], [Project6].[IsCompleted1] AS [IsCompleted1], [Project6].[PartialTag2] AS [PartialTag2], [Project6].[ITRackID4] AS [ITRackID4]
FROM ( SELECT [Project6].[ITServerID] AS [ITServerID], [Project6].[ServerModelID] AS [ServerModelID], [Project6].[ILOIP] AS [ILOIP], [Project6].[RackID] AS [RackID], [Project6].[StatusID] AS [StatusID], [Project6].[BackUpStatusID] AS [BackUpStatusID], [Project6].[RoleID] AS [RoleID], [Project6].[OperatingSystemID] AS [OperatingSystemID], [Project6].[VirtualCenterID] AS [VirtualCenterID], [Project6].[Comment] AS [Comment], [Project6].[timestamp] AS [timestamp], [Project6].[IT360SiteID] AS [IT360SiteID], [Project6].[TechnologyID] AS [TechnologyID], [Project6].[ITRackID] AS [ITRackID], [Project6].[TechnologyID1] AS [TechnologyID1], [Project6].[PartialTag] AS [PartialTag], [Project6].[ITRackID1] AS [ITRackID1], [Project6].[ITRackID2] AS [ITRackID2], [Project6].[DataCenterID] AS [DataCenterID], [Project6].[ZoneID] AS [ZoneID], [Project6].[timestamp1] AS [timestamp1], [Project6].[IT360SiteID1] AS [IT360SiteID1], [Project6].[TechnologyID2] AS [TechnologyID2], [Project6].[Tag] AS [Tag], [Project6].[IsDeleted] AS [IsDeleted], [Project6].[timestamp2] AS [timestamp2], [Project6].[TypeID] AS [TypeID], [Project6].[StartDate] AS [StartDate], [Project6].[IT360ID] AS [IT360ID], [Project6].[IsCompleted] AS [IsCompleted], [Project6].[PartialTag1] AS [PartialTag1], [Project6].[ITRackID3] AS [ITRackID3], [Project6].[ITServerID1] AS [ITServerID1], [Project6].[ID] AS [ID], [Project6].[Name] AS [Name], [Project6].[timestamp3] AS [timestamp3], [Project6].[TechnologyID3] AS [TechnologyID3], [Project6].[Tag1] AS [Tag1], [Project6].[IsDeleted1] AS [IsDeleted1], [Project6].[timestamp4] AS [timestamp4], [Project6].[TypeID1] AS [TypeID1], [Project6].[StartDate1] AS [StartDate1], [Project6].[IT360ID1] AS [IT360ID1], [Project6].[IsCompleted1] AS [IsCompleted1], [Project6].[PartialTag2] AS [PartialTag2], [Project6].[ITRackID4] AS [ITRackID4], row_number() OVER (ORDER BY [Project6].[PartialTag] ASC) AS [row_number]
FROM ( SELECT
//code goes here
INNER JOIN (SELECT [Extent28].[TechnologyID] AS [TechnologyID], [Extent28].[Tag] AS [Tag], [Extent29].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent28]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent29] ON [Extent28].[TechnologyID] = [Extent29].[ITRackID] ) AS [Join25] ON [Extent27].[ITServerID] = [Join25].[TechnologyID]
INNER JOIN (SELECT [Extent30].[TechnologyID] AS [TechnologyID], [Extent30].[PartialTag] AS [PartialTag], [Extent31].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent30]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent31] ON [Extent30].[TechnologyID] = [Extent31].[ITRackID] ) AS [Join27] ON [Extent27].[ITServerID] = [Join27].[TechnologyID]
INNER JOIN [dbo].[ITRacks] AS [Extent32] ON [Extent27].[RackID] = [Extent32].[ITRackID]
LEFT OUTER JOIN (SELECT [Extent33].[TechnologyID] AS [TechnologyID], [Extent33].[Tag] AS [Tag], [Extent33].[IsDeleted] AS [IsDeleted], [Extent33].[timestamp] AS [timestamp9], [Extent33].[TypeID] AS [TypeID], [Extent33].[StartDate] AS [StartDate], [Extent33].[IT360ID] AS [IT360ID], [Extent33].[IsCompleted] AS [IsCompleted], [Extent33].[PartialTag] AS [PartialTag], [Extent34].[ITRackID] AS [ITRackID], [Extent35].[ITServerID] AS [ITServerID]
FROM [dbo].[Technology] AS [Extent33]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent34] ON [Extent33].[TechnologyID] = [Extent34].[ITRackID]
LEFT OUTER JOIN [dbo].[ITServers] AS [Extent35] ON [Extent33].[TechnologyID] = [Extent35].[ITServerID] ) AS [Join31] ON [Extent27].[RackID] = [Join31].[ITRackID]
INNER JOIN [dbo].[DataCenter] AS [Extent36] ON [Extent32].[DataCenterID] = [Extent36].[ID]
INNER JOIN (SELECT [Extent37].[TechnologyID] AS [TechnologyID], [Extent37].[Tag] AS [Tag], [Extent37].[IsDeleted] AS [IsDeleted], [Extent37].[timestamp] AS [timestamp10], [Extent37].[TypeID] AS [TypeID], [Extent37].[StartDate] AS [StartDate], [Extent37].[IT360ID] AS [IT360ID], [Extent37].[IsCompleted] AS [IsCompleted], [Extent37].[PartialTag] AS [PartialTag], [Extent38].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent37]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent38] ON [Extent37].[TechnologyID] = [Extent38].[ITRackID] ) AS [Join34] ON [Extent27].[ITServerID] = [Join34].[TechnologyID]
WHERE (@p__linq__0 IS NULL) OR (( CAST(LEN(@p__linq__0) AS int)) = 0) OR (( CAST(CHARINDEX(UPPER(@p__linq__1), UPPER([Join25].[Tag])) AS int)) = 1)
) AS [Project6]
) AS [Project6]
WHERE [Project6].[row_number] > 225
ORDER BY [Project6].[PartialTag] ASC ) AS [Limit3]
//code goes here
FROM (SELECT TOP (15) [Project12].[ITServerID] AS [ITServerID], [Project12].[ServerModelID] AS [ServerModelID], [Project12].[ILOIP] AS [ILOIP], [Project12].[RackID] AS [RackID], [Project12].[StatusID] AS [StatusID], [Project12].[BackUpStatusID] AS [BackUpStatusID], [Project12].[RoleID] AS [RoleID], [Project12].[OperatingSystemID] AS [OperatingSystemID], [Project12].[VirtualCenterID] AS [VirtualCenterID], [Project12].[Comment] AS [Comment], [Project12].[timestamp] AS [timestamp], [Project12].[IT360SiteID] AS [IT360SiteID], [Project12].[TechnologyID] AS [TechnologyID], [Project12].[ITRackID] AS [ITRackID], [Project12].[TechnologyID1] AS [TechnologyID1], [Project12].[PartialTag] AS [PartialTag], [Project12].[ITRackID1] AS [ITRackID1], [Project12].[ITRackID2] AS [ITRackID2], [Project12].[DataCenterID] AS [DataCenterID], [Project12].[ZoneID] AS [ZoneID], [Project12].[timestamp1] AS [timestamp1], [Project12].[IT360SiteID1] AS [IT360SiteID1], [Project12].[TechnologyID2] AS [TechnologyID2], [Project12].[Tag] AS [Tag], [Project12].[IsDeleted] AS [IsDeleted], [Project12].[timestamp2] AS [timestamp2], [Project12].[TypeID] AS [TypeID], [Project12].[StartDate] AS [StartDate], [Project12].[IT360ID] AS [IT360ID], [Project12].[IsCompleted] AS [IsCompleted], [Project12].[PartialTag1] AS [PartialTag1], [Project12].[ITRackID3] AS [ITRackID3], [Project12].[ITServerID1] AS [ITServerID1], [Project12].[ID] AS [ID], [Project12].[Name] AS [Name], [Project12].[timestamp3] AS [timestamp3], [Project12].[TechnologyID3] AS [TechnologyID3], [Project12].[Tag1] AS [Tag1], [Project12].[IsDeleted1] AS [IsDeleted1], [Project12].[timestamp4] AS [timestamp4], [Project12].[TypeID1] AS [TypeID1], [Project12].[StartDate1] AS [StartDate1], [Project12].[IT360ID1] AS [IT360ID1], [Project12].[IsCompleted1] AS [IsCompleted1], [Project12].[PartialTag2] AS [PartialTag2], [Project12].[ITRackID4] AS [ITRackID4]
FROM ( SELECT [Project12].[ITServerID] AS [ITServerID], [Project12].[ServerModelID] AS [ServerModelID], [Project12].[ILOIP] AS [ILOIP], [Project12].[RackID] AS [RackID], [Project12].[StatusID] AS [StatusID], [Project12].[BackUpStatusID] AS [BackUpStatusID], [Project12].[RoleID] AS [RoleID], [Project12].[OperatingSystemID] AS [OperatingSystemID], [Project12].[VirtualCenterID] AS [VirtualCenterID], [Project12].[Comment] AS [Comment], [Project12].[timestamp] AS [timestamp], [Project12].[IT360SiteID] AS [IT360SiteID], [Project12].[TechnologyID] AS [TechnologyID], [Project12].[ITRackID] AS [ITRackID], [Project12].[TechnologyID1] AS [TechnologyID1], [Project12].[PartialTag] AS [PartialTag], [Project12].[ITRackID1] AS [ITRackID1], [Project12].[ITRackID2] AS [ITRackID2], [Project12].[DataCenterID] AS [DataCenterID], [Project12].[ZoneID] AS [ZoneID], [Project12].[timestamp1] AS [timestamp1], [Project12].[IT360SiteID1] AS [IT360SiteID1], [Project12].[TechnologyID2] AS [TechnologyID2], [Project12].[Tag] AS [Tag], [Project12].[IsDeleted] AS [IsDeleted], [Project12].[timestamp2] AS [timestamp2], [Project12].[TypeID] AS [TypeID], [Project12].[StartDate] AS [StartDate], [Project12].[IT360ID] AS [IT360ID], [Project12].[IsCompleted] AS [IsCompleted], [Project12].[PartialTag1] AS [PartialTag1], [Project12].[ITRackID3] AS [ITRackID3], [Project12].[ITServerID1] AS [ITServerID1], [Project12].[ID] AS [ID], [Project12].[Name] AS [Name], [Project12].[timestamp3] AS [timestamp3], [Project12].[TechnologyID3] AS [TechnologyID3], [Project12].[Tag1] AS [Tag1], [Project12].[IsDeleted1] AS [IsDeleted1], [Project12].[timestamp4] AS [timestamp4], [Project12].[TypeID1] AS [TypeID1], [Project12].[StartDate1] AS [StartDate1], [Project12].[IT360ID1] AS [IT360ID1], [Project12].[IsCompleted1] AS [IsCompleted1], [Project12].[PartialTag2] AS [PartialTag2], [Project12].[ITRackID4] AS [ITRackID4], row_number() OVER (ORDER BY [Project12].[PartialTag] ASC) AS [row_number]
FROM ( SELECT
//code goes here
FROM [dbo].[ITServers] AS [Extent53]
INNER JOIN (SELECT [Extent54].[TechnologyID] AS [TechnologyID], [Extent54].[Tag] AS [Tag], [Extent55].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent54]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent55] ON [Extent54].[TechnologyID] = [Extent55].[ITRackID] ) AS [Join49] ON [Extent53].[ITServerID] = [Join49].[TechnologyID]
INNER JOIN (SELECT [Extent56].[TechnologyID] AS [TechnologyID], [Extent56].[PartialTag] AS [PartialTag], [Extent57].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent56]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent57] ON [Extent56].[TechnologyID] = [Extent57].[ITRackID] ) AS [Join51] ON [Extent53].[ITServerID] = [Join51].[TechnologyID]
INNER JOIN [dbo].[ITRacks] AS [Extent58] ON [Extent53].[RackID] = [Extent58].[ITRackID]
LEFT OUTER JOIN (SELECT [Extent59].[TechnologyID] AS [TechnologyID], [Extent59].[Tag] AS [Tag], [Extent59].[IsDeleted] AS [IsDeleted], [Extent59].[timestamp] AS [timestamp13], [Extent59].[TypeID] AS [TypeID], [Extent59].[StartDate] AS [StartDate], [Extent59].[IT360ID] AS [IT360ID], [Extent59].[IsCompleted] AS [IsCompleted], [Extent59].[PartialTag] AS [PartialTag], [Extent60].[ITRackID] AS [ITRackID], [Extent61].[ITServerID] AS [ITServerID]
FROM [dbo].[Technology] AS [Extent59]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent60] ON [Extent59].[TechnologyID] = [Extent60].[ITRackID]
LEFT OUTER JOIN [dbo].[ITServers] AS [Extent61] ON [Extent59].[TechnologyID] = [Extent61].[ITServerID] ) AS [Join55] ON [Extent53].[RackID] = [Join55].[ITRackID]
INNER JOIN [dbo].[DataCenter] AS [Extent62] ON [Extent58].[DataCenterID] = [Extent62].[ID]
INNER JOIN (SELECT [Extent63].[TechnologyID] AS [TechnologyID], [Extent63].[Tag] AS [Tag], [Extent63].[IsDeleted] AS [IsDeleted], [Extent63].[timestamp] AS [timestamp14], [Extent63].[TypeID] AS [TypeID], [Extent63].[StartDate] AS [StartDate], [Extent63].[IT360ID] AS [IT360ID], [Extent63].[IsCompleted] AS [IsCompleted], [Extent63].[PartialTag] AS [PartialTag], [Extent64].[ITRackID] AS [ITRackID]
FROM [dbo].[Technology] AS [Extent63]
LEFT OUTER JOIN [dbo].[ITRacks] AS [Extent64] ON [Extent63].[TechnologyID] = [Extent64].[ITRackID] ) AS [Join58] ON [Extent53].[ITServerID] = [Join58].[TechnologyID]
WHERE (@p__linq__0 IS NULL) OR (( CAST(LEN(@p__linq__0) AS int)) = 0) OR (( CAST(CHARINDEX(UPPER(@p__linq__1), UPPER([Join49].[Tag])) AS int)) = 1)
) AS [Project12]
) AS [Project12]
WHERE [Project12].[row_number] > 225
ORDER BY [Project12].[PartialTag] ASC ) AS [Limit5]
INNER JOIN [dbo].[ITRouters] AS [Extent65] ON [Limit5].[ITServerID] = [Extent65].[ConsoleServerID]) AS [UnionAll4]
ORDER BY [UnionAll4].[C2] ASC, [UnionAll4].[C3] ASC, [UnionAll4].[C4] ASC, [UnionAll4].[C5] ASC, [UnionAll4].[C6] ASC, [UnionAll4].[C7] ASC, [UnionAll4].[C8] ASC, [UnionAll4].[C9] ASC, [UnionAll4].[C10] ASC, [UnionAll4].[C11] ASC, [UnionAll4].[C12] ASC, [UnionAll4].[C13] ASC, [UnionAll4].[C14] ASC, [UnionAll4].[C16] ASC, [UnionAll4].[C29] ASC, [UnionAll4].[C34] ASC, [UnionAll4].[C43] ASC, [UnionAll4].[C46] ASC, [UnionAll4].[C1] ASC',N'@p__linq__0 nvarchar(4000),@p__linq__1 nvarchar(4000)',@p__linq__0=N'',@p__linq__1=N''
所以不确定为什么会生成带有许多冗余代码的长语句?
由于