将SQL转换为实体框架的linq(C#) [英] Converter SQL to linq(C#) for entity framework

查看:85
本文介绍了将SQL转换为实体框架的linq(C#)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have a SQL statement which is causing a lot of performance issues on a production server.

Can you please help me out with a way so that i can convert this sql statement to linq so that I can search the output linq to narrow down the issue. We are using entity framework in the code.







(@p__linq__0 nvarchar(4000),@p__linq__1 nvarchar(4000),@p__linq__2 bigint,@p__linq__3 int,@p__linq__4 nvarchar(4000),@p__linq__5 nvarchar(4000),@p__linq__6 nvarchar(4000),@p__linq__7 nvarchar(4000),@p__linq__8 nvarchar(4000),@p__linq__9 bigint,@p__linq__10 bigint,@p__linq__11 nvarchar(4000),@p__linq__12 nvarchar(4000),@p__linq__13 bigint)SELECT [Limit1].[c2]              AS [C1], 
       [Limit1].[memberid]        AS [MemberId], 
       [Limit1].[membercode]      AS [MemberCode], 
       [Limit1].[membername]      AS [MemberName], 
       [Limit1].[siteid]          AS [SiteId], 
       [Limit1].[sitecode]        AS [Sitecode], 
       [Limit1].[sitename]        AS [SiteName], 
       [Limit1].[regid]           AS [RegId], 
       [Limit1].[resourcename]    AS [ResourceName], 
       [Limit1].[resfriendlyname] AS [ResFriendlyName], 
       [Limit1].[c1]              AS [C2], 
       [Limit1].[regtype]         AS [RegType], 
       [Limit1].[c3]              AS [C3], 
       [Limit1].[c4]              AS [C4], 
       [Limit1].[c5]              AS [C5], 
       [Limit1].[c6]              AS [C6], 
       [Limit1].[c7]              AS [C7], 
       [Limit1].[c8]              AS [C8], 
       [Limit1].[c9]              AS [C9], 
       [Limit1].[c10]             AS [C10], 
       [Limit1].[c11]             AS [C11], 
       [Limit1].[c12]             AS [C12], 
       [Limit1].[c13]             AS [C13], 
       [Limit1].[c14]             AS [C14], 
       [Limit1].[c15]             AS [C15] 
FROM   ( 
                  SELECT TOP (1) 
                             [Filter1].[siteid]          AS [SiteId], 
                             [Filter1].[sitename]        AS [SiteName], 
                             [Filter1].[sitecode]        AS [Sitecode], 
                             [Filter1].[memberid1]       AS [MemberId], 
                             [Filter1].[membercode]      AS [MemberCode], 
                             [Filter1].[membername]      AS [MemberName], 
                             [Extent4].[regid]           AS [RegId], 
                             [Extent4].[resourcename]    AS [ResourceName], 
                             [Extent4].[regtype]         AS [RegType], 
                             [Extent4].[resfriendlyname] AS [ResFriendlyName], 
                             N'Resource'                 AS [C1], 
                             0                           AS [C2], 
                             CASE 
                                        WHEN ( 
                                                              0 = @p__linq__3) THEN N'New' 
                                        ELSE N'Close' 
                             END           AS [C3], 
                             @p__linq__4   AS [C4], 
                             @p__linq__5   AS [C5], 
                             @p__linq__6   AS [C6], 
                             @p__linq__7   AS [C7], 
                             @p__linq__8   AS [C8], 
                             Sysdatetime() AS [C9], 
                             Sysdatetime() AS [C10], 
                             @p__linq__9   AS [C11], 
                             @p__linq__10  AS [C12], 
                             @p__linq__11  AS [C13], 
                             @p__linq__12  AS [C14], 
                             @p__linq__13  AS [C15] 
                  FROM       ( 
                                        SELECT     [Extent2].[siteid]       AS [SiteId], 
                                                   [Extent2].[memberid]     AS [MemberId2], 
                                                   [Extent2].[sitename]     AS [SiteName], 
                                                   [Extent2].[sitecode]     AS [Sitecode], 
                                                   [Extent3].[memberid]     AS [MemberId1], 
                                                   [Extent3].[membercode]   AS [MemberCode], 
                                                   [Extent3].[membername]   AS [MemberName] 
                                        FROM       [dbo].[asm_site_mapping] AS [Extent1] 
                                        INNER JOIN [dbo].[mstsite]          AS [Extent2] 
                                        ON         [Extent1].[asm_siteid] = [Extent2].[siteid] 
                                        INNER JOIN [dbo].[mstmember] AS [Extent3] 
                                        ON         [Extent1].[asm_memberid] = [Extent3].[memberid] 
                                        WHERE      1 = [Extent2].[isenabled] ) AS [Filter1] 
                  INNER JOIN [dbo].[regmain]                                   AS [Extent4] 
                  ON         [Filter1].[siteid] = [Extent4].[siteid] 
                  WHERE      ( 
                                        [Extent4].[sitecode] = @p__linq__0) 
                  AND        ( 
                                        [Extent4].[guid] = @p__linq__1) 
                  AND        ( 
                                        [Filter1].[memberid2] = @p__linq__2) ) AS [Limit1]





我的尝试:



我确实尝试使用http://www.sqltolinq.com/Download/linqer_4.6.0.0_trial.zip

无法计算解决方案



What I have tried:

I did try to use http://www.sqltolinq.com/Download/linqer_4.6.0.0_trial.zip
Bu not able to figure out the solution

推荐答案

您可以尝试 LinqPad [ ^ ]。


这篇关于将SQL转换为实体框架的linq(C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆