Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将T-SQL语句转换为LINQ表达式_C#_Sql_Linq_Linq To Sql_Linq To Entities - Fatal编程技术网

C# 将T-SQL语句转换为LINQ表达式

C# 将T-SQL语句转换为LINQ表达式,c#,sql,linq,linq-to-sql,linq-to-entities,C#,Sql,Linq,Linq To Sql,Linq To Entities,我对linq非常陌生,实际上正在努力将以下t-sql语句转换为linq to sql或linq to entities表达式: SELECT TOP 1 vm.EventID, vmm.VotingMatrixID, PersonAcceptedCount = SUM( CAST( vmm.IsAccepted AS INT) ) FROM VotingMatrixMember vmm JOIN VotingMatrix vm ON vmm.Vot

我对linq非常陌生,实际上正在努力将以下t-sql语句转换为linq to sql或linq to entities表达式:

SELECT TOP 1
    vm.EventID,
    vmm.VotingMatrixID,
    PersonAcceptedCount = SUM( CAST( vmm.IsAccepted AS INT) )

FROM    VotingMatrixMember vmm

JOIN    VotingMatrix vm
    ON vmm.VotingMatrixID = vm.ID

WHERE vm.EventID = 'abbe3077-24de-45d8-ac04-13dba97c1567'
    AND vm.Deleted = 0
    AND vmm.Deleted = 0

GROUP BY vm.EventID, vmm.VotingMatrixID

ORDER BY PersonAcceptedCount DESC
试试这个,不能测试

        var firstItem = (
                        from vmm in db.VotingMatrixMember
                        join vm in db.VotingMatrix on vmm.VotingMatrixID equals vm.ID
                        where vm.EventID =  "abbe3077-24de-45d8-ac04-13dba97c1567"
                                                && vm.Deleted = 0
                                                && vmm.Deleted = 0
                        group new {vm, vmm} by new {vm.EventID, vmm.VotingMatrixID} into gr
                        select new
                        {
                            EventID = gr.Key.EventID,
                            VotingMatrixID = gr.Key.VotingMatrixID,
                            PersonAcceptedCount = gr.Sum(x => Convert.ToInt32(x.IsAccepted))
                        } 
                        into groupedItem 
                        orderby  groupedItem.PersonAcceptedCount descending 
                        select groupedItem                            
                         ).FirstOrDefault();

@大卫B:只要稍加修改,我就可以了。谢谢你们两位!
        var firstItem = (
                        from vmm in db.VotingMatrixMember
                        join vm in db.VotingMatrix on vmm.VotingMatrixID equals vm.ID
                        where vm.EventID =  "abbe3077-24de-45d8-ac04-13dba97c1567"
                                                && vm.Deleted = 0
                                                && vmm.Deleted = 0
                        group new {vm, vmm} by new {vm.EventID, vmm.VotingMatrixID} into gr
                        select new
                        {
                            EventID = gr.Key.EventID,
                            VotingMatrixID = gr.Key.VotingMatrixID,
                            PersonAcceptedCount = gr.Sum(x => Convert.ToInt32(x.IsAccepted))
                        } 
                        into groupedItem 
                        orderby  groupedItem.PersonAcceptedCount descending 
                        select groupedItem                            
                         ).FirstOrDefault();