У меня возникла проблема с сущностью. В запросе нет рекурсивного цикла, но я не знаю, почему я столкнулся с этим исключением. Вы можете увидеть код.System.StackOverflowException 'произошел в EntityFramework.dll
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
Я искал об этом, но мое дело обстоит иначе, если я пропустить выберите VALES мой запрос работает нормально. Я не знаю почему. но без пропусков это исключает исключение.
Пожалуйста, помогите ..
Извините за это, но этот запрос безумный. Вы должны нормализовать свою модель данных, прежде чем пытаться сделать этот шаг дальше. Впоследствии создайте различные части пользовательского интерфейса на отдельных этапах. Зачем все это в одном недостижимом монолите? –
Кроме того, 'StackOverflowException' трудно обнаружить, не имея возможности запускать код (и даже тогда). Но я уверен, что LINQ-to-SQL задыхается в количестве кода SQL, который он пытается сгенерировать. –
@Gert Arnold Что делать, если это требования от клиента. Я знаю, что это безумие, но как я могу это сделать. – user3253756