System.StackOverflowException'发生在EntityFramework.dll中

时间:2016-06-20 19:00:52

标签: sql sql-server linq linq-to-sql entity-framework-4

我正面临着entityframework的问题。查询中不存在递归循环,但我不知道为什么我会遇到此异常。你可以看到代码。

    var checkList = from checklist in db.Checklists
                        join code in db.Codes on checklist.iCodeID equals code.iCodeID
                        where code.bDeleted == false && code.bObsolete == false
                        join codeGroup in db.CodeGroups on code.iGroupID equals codeGroup.iGroupID
                        where codeGroup.bDeleted == false && codeGroup.bInspection == true
                        join codeInspectionType in db.CodeInspectionTypeVs on checklist.LongKey.Substring(0, 6) equals DbFunctions.Right("00000" + codeInspectionType.InspectionTypeID, 6)
                        where checklist.bDeleted == false
                        orderby checklist.iChecklistID
                        select new
                        {
                            checklist.iChecklistID,
                            InspectionTypeID = checklist.LongKey.Substring(0, 6).ToString(),
                            codeInspectionType.bSubInspection,
                            SortSeq = db.CodesTreeSelectUDF(null, checklist.LongKey, null, null, null).Select(x => x.SortKey).FirstOrDefault(),
                            codeGroup.iGroupID,
                            codeGroup.GroupDesc,
                            checklist.bPromptForQty,
                            checklist.bShowInTree,
                            DescCombo = new { codeGroup.DescCombo1, codeGroup.DescCombo2, codeGroup.DescCombo3, codeGroup.DescCombo4, codeGroup.DescCombo5, codeGroup.DescCombo6, codeGroup.DescCombo7, codeGroup.DescCombo8, codeGroup.DescCombo9, codeGroup.DescCombo10, codeGroup.DescCombo11, codeGroup.DescCombo12, codeGroup.DescCombo13, codeGroup.DescCombo14, codeGroup.DescCombo15, codeGroup.DescCombo16, codeGroup.DescCombo17, codeGroup.DescCombo18, codeGroup.DescCombo19, codeGroup.DescCombo20, codeGroup.DescCombo21, codeGroup.DescCombo22, codeGroup.DescCombo23, codeGroup.DescCombo24, codeGroup.DescCombo25, codeGroup.DescCombo26, codeGroup.DescCombo27, codeGroup.DescCombo28, codeGroup.DescCombo29, codeGroup.DescCombo30 },
                            codeGroup.DescText1,
                            codeGroup.bTextAbbreviation1,
                            codeGroup.DescText2,
                            codeGroup.bTextAbbreviation2,
                            codeGroup.DescText3,
                            codeGroup.bTextAbbreviation3,
                            codeGroup.DescText4,
                            codeGroup.bTextAbbreviation4,
                            codeGroup.DescText5,
                            codeGroup.bTextAbbreviation5,
                            codeGroup.DescText6,
                            codeGroup.bTextAbbreviation6,
                            codeGroup.DescText7,
                            codeGroup.bTextAbbreviation7,
                            codeGroup.DescText8,
                            codeGroup.bTextAbbreviation8,
                            codeGroup.DescText9,
                            codeGroup.bTextAbbreviation9,
                            codeGroup.DescText10,
                            codeGroup.bTextAbbreviation10,
                            codeGroup.DescInt1,
                            codeGroup.DescInt2,
                            codeGroup.DescInt3,
                            codeGroup.DescInt4,
                            codeGroup.DescInt5,
                            codeGroup.DescInt6,
                            codeGroup.DescInt7,
                            codeGroup.DescInt8,
                            codeGroup.DescInt9,
                            codeGroup.DescInt10,
                            codeGroup.DescNum1,
                            codeGroup.DescNum2,
                            codeGroup.DescNum3,
                            codeGroup.DescNum4,
                            codeGroup.DescNum5,
                            codeGroup.DescNum6,
                            codeGroup.DescNum7,
                            codeGroup.DescNum8,
                            codeGroup.DescNum9,
                            codeGroup.DescNum10,
                            codeGroup.DescBool1,
                            codeGroup.BoolOnText1,
                            codeGroup.BoolOffText1,
                            codeGroup.DescBool2,
                            codeGroup.BoolOnText2,
                            codeGroup.BoolOffText2,
                            codeGroup.DescBool3,
                            codeGroup.BoolOnText3,
                            codeGroup.BoolOffText3,
                            codeGroup.DescBool4,
                            codeGroup.BoolOnText4,
                            codeGroup.BoolOffText4,
                            codeGroup.DescBool5,
                            codeGroup.BoolOnText5,
                            codeGroup.BoolOffText5,
                            codeGroup.DescBool6,
                            codeGroup.BoolOnText6,
                            codeGroup.BoolOffText6,
                            codeGroup.DescBool7,
                            codeGroup.BoolOnText7,
                            codeGroup.BoolOffText7,
                            codeGroup.DescBool8,
                            codeGroup.BoolOnText8,
                            codeGroup.BoolOffText8,
                            codeGroup.DescBool9,
                            codeGroup.BoolOnText9,
                            codeGroup.BoolOffText9,
                            codeGroup.DescBool10,
                            codeGroup.BoolOnText10,
                            codeGroup.BoolOffText10,
                            codeGroup.DescBool11,
                            codeGroup.BoolOnText11,
                            codeGroup.BoolOffText11,
                            codeGroup.DescBool12,
                            codeGroup.BoolOnText12,
                            codeGroup.BoolOffText12,
                            codeGroup.DescBool13,
                            codeGroup.BoolOnText13,
                            codeGroup.BoolOffText13,
                            codeGroup.DescBool14,
                            codeGroup.BoolOnText14,
                            codeGroup.BoolOffText14,
                            codeGroup.DescBool15,
                            codeGroup.BoolOnText15,
                            codeGroup.BoolOffText15,
                            codeGroup.DescBool16,
                            codeGroup.BoolOnText16,
                            codeGroup.BoolOffText16,
                            codeGroup.DescBool17,
                            codeGroup.BoolOnText17,
                            codeGroup.BoolOffText17,
                            codeGroup.DescBool18,
                            codeGroup.BoolOnText18,
                            codeGroup.BoolOffText18,
                            codeGroup.DescBool19,
                            codeGroup.BoolOnText19,
                            codeGroup.BoolOffText19,
                            codeGroup.DescBool20,
                            codeGroup.BoolOnText20,
                            codeGroup.BoolOffText20,
                            codeGroup.DescBool21,
                            codeGroup.BoolOnText21,
                            codeGroup.BoolOffText21,
                            codeGroup.DescBool22,
                            codeGroup.BoolOnText22,
                            codeGroup.BoolOffText22,
                            codeGroup.DescBool23,
                            codeGroup.BoolOnText23,
                            codeGroup.BoolOffText23,
                            codeGroup.DescBool24,
                            codeGroup.BoolOnText24,
                            codeGroup.BoolOffText24,
                            codeGroup.DescBool25,
                            codeGroup.BoolOnText25,
                            codeGroup.BoolOffText25,
                            codeGroup.DescBool26,
                            codeGroup.BoolOnText26,
                            codeGroup.BoolOffText26,
                            codeGroup.DescBool27,
                            codeGroup.BoolOnText27,
                            codeGroup.BoolOffText27,
                            codeGroup.DescBool28,
                            codeGroup.BoolOnText28,
                            codeGroup.BoolOffText28,
                            codeGroup.DescBool29,
                            codeGroup.BoolOnText29,
                            codeGroup.BoolOffText29,
                            codeGroup.DescBool30,
                            codeGroup.BoolOnText30,
                            codeGroup.BoolOffText30,
                            DescMoney = new { codeGroup.DescMoney1, codeGroup.DescMoney2, codeGroup.DescMoney3, codeGroup.DescMoney4, codeGroup.DescMoney5, codeGroup.DescMoney6, codeGroup.DescMoney7, codeGroup.DescMoney8, codeGroup.DescMoney9, codeGroup.DescMoney10 },
                            DescDate = new { codeGroup.DescDate1, codeGroup.DescDate2, codeGroup.DescDate3, codeGroup.DescDate4, codeGroup.DescDate5, codeGroup.DescDate6, codeGroup.DescDate7, codeGroup.DescDate8, codeGroup.DescDate9, codeGroup.DescDate10 },
                            DescMemo = new { codeGroup.DescMemo1, codeGroup.DescMemo2, codeGroup.DescMemo3, codeGroup.DescMemo4, codeGroup.DescMemo5, codeGroup.DescMemo6, codeGroup.DescMemo7, codeGroup.DescMemo8, codeGroup.DescMemo9, codeGroup.DescMemo10 },
                            codeGroup.Bookmark,
                            codeGroup.bProtected,
                            codeGroup.bMultiPicklist,
                            codeGroup.Notes,
                            code.iCodeID,
                            LongKey = db.CodesTreeSelectUDF(null, checklist.LongKey, null, null, null).Select(x => x.LongKey).FirstOrDefault(),
                            code.CodeSortCode,
                            code.Description,
                            code.bDefault,
                            CodeCombo = new
                            {
                                code.CodeCombo1,
                                code.CodeCombo2,
                                code.CodeCombo3,
                                code.CodeCombo4,
                                code.CodeCombo5,
                                code.CodeCombo6,
                                code.CodeCombo7,
                                code.CodeCombo8,
                                code.CodeCombo9,
                                code.CodeCombo10,
                                code.CodeCombo11,
                                code.CodeCombo12,
                                code.CodeCombo13,
                                code.CodeCombo14,
                                code.CodeCombo15,
                                code.CodeCombo16,
                                code.CodeCombo17,
                                code.CodeCombo18,
                                code.CodeCombo19,
                                code.CodeCombo20,
                                code.CodeCombo21,
                                code.CodeCombo22,
                                code.CodeCombo23,
                                code.CodeCombo24,
                                code.CodeCombo25,
                                code.CodeCombo26,
                                code.CodeCombo27,
                                code.CodeCombo28,
                                code.CodeCombo29,
                                code.CodeCombo30
                            },
                            code.CodeText1,
                            code.CodeTextAbbreviation1,
                            code.CodeText2,
                            code.CodeTextAbbreviation2,
                            code.CodeText3,
                            code.CodeTextAbbreviation3,
                            code.CodeText4,
                            code.CodeTextAbbreviation4,
                            code.CodeText5,
                            code.CodeTextAbbreviation5,
                            code.CodeText6,
                            code.CodeTextAbbreviation6,
                            code.CodeText7,
                            code.CodeTextAbbreviation7,
                            code.CodeText8,
                            code.CodeTextAbbreviation8,
                            code.CodeText9,
                            code.CodeTextAbbreviation9,
                            code.CodeText10,
                            code.CodeTextAbbreviation10,
                            CodeInt = new { code.CodeInt1, code.CodeInt2, code.CodeInt3, code.CodeInt4, code.CodeInt5, code.CodeInt6, code.CodeInt7, code.CodeInt8, code.CodeInt9, code.CodeInt10 },
                            CodeNum = new { code.CodeNum1, code.CodeNum2, code.CodeNum3, code.CodeNum4, code.CodeNum5, code.CodeNum6, code.CodeNum7, code.CodeNum8, code.CodeNum9, code.CodeNum10 },
                            CodeBool = new
                            {
                                code.CodeBool1,
                                code.CodeBool2,
                                code.CodeBool3,
                                code.CodeBool4,
                                code.CodeBool5,
                                code.CodeBool6,
                                code.CodeBool7,
                                code.CodeBool8,
                                code.CodeBool9,
                                code.CodeBool10,
                                code.CodeBool11,
                                code.CodeBool12,
                                code.CodeBool13,
                                code.CodeBool14,
                                code.CodeBool15,
                                code.CodeBool16,
                                code.CodeBool17,
                                code.CodeBool18,
                                code.CodeBool19,
                                code.CodeBool20,
                                code.CodeBool21,
                                code.CodeBool22,
                                code.CodeBool23,
                                code.CodeBool24,
                                code.CodeBool25,
                                code.CodeBool26,
                                code.CodeBool27,
                                code.CodeBool28,
                                code.CodeBool29,
                                code.CodeBool30
                            },
                            CodeMoney = new { code.CodeMoney1, code.CodeMoney2, code.CodeMoney3, code.CodeMoney4, code.CodeMoney5, code.CodeMoney6, code.CodeMoney7, code.CodeMoney8, code.CodeMoney9, code.CodeMoney10 },
                            CodeDate = new { code.CodeDate1, code.CodeDate2, code.CodeDate3, code.CodeDate4, code.CodeDate5, code.CodeDate6, code.CodeDate7, code.CodeDate8, code.CodeDate9, code.CodeDate10 },
                            CodeMemo = new { code.CodeMemo1, code.CodeMemo2, code.CodeMemo3, code.CodeMemo4, code.CodeMemo5, code.CodeMemo6, code.CodeMemo7, code.CodeMemo8, code.CodeMemo9, code.CodeMemo10 },
                            code.CodeURL,
                            code.SessionVariable,
                            code.bMandatory,
                            code.PopUp,
                            code.bDrillDown,
                            code.Icon
                        };

当我通过邮递员测试时,会抛出以下异常:

An unhandled exception of type 'System.StackOverflowException' occurred in EntityFramework.dll

我搜索过它,但是当我跳过select vales我的查询正常工作时我的情况有所不同。我不知道为什么。但是没有跳过它会引发异常。

请帮助..

1 个答案:

答案 0 :(得分:0)

经过多次努力,我自己找到答案。

db.ConvertLongKeyUDF (LongKey) replace with
db.ConvertLongKeyUDF (LongKey) As ConvertedtLongKey


CodeGroup.Notes replace with
CodeGroup.Notes As codeGroupNotes


CodeGroup.bProtected replace with
CodeGroup.bProtected As codeGroup_bProtected


code.Notes replace with
codes.Notes As codeNotes


code.bProtected replace with 
codes.bProtected As code_bProtected

由于这些行生成相同的名称字段,产生ERROR!