我很新的linq.i已在DB得到了大多數內部類對象的一對多關係在LINQ
TYPE, QUESTION,ANSWER
每一種類型的3個實體有很多問題 每一個問題有很多答案, 我急切地加載IList,其中有所有的問題和答案,我需要獲取所有的答案,無視其類型和問題,我的意思是我需要有結果,其類型是答案類型的答案,其中所有的答案在數據庫中。 我有
IList<TYPE> types=context.TYPES.ToList();
但我沒有關於如何得到所有的答案任何想法。
我很新的linq.i已在DB得到了大多數內部類對象的一對多關係在LINQ
TYPE, QUESTION,ANSWER
每一種類型的3個實體有很多問題 每一個問題有很多答案, 我急切地加載IList,其中有所有的問題和答案,我需要獲取所有的答案,無視其類型和問題,我的意思是我需要有結果,其類型是答案類型的答案,其中所有的答案在數據庫中。 我有
IList<TYPE> types=context.TYPES.ToList();
但我沒有關於如何得到所有的答案任何想法。
包含「QUESTION」和「QUESTION.ANSWER」爲您提供外鍵關係列表。
IList<TYPE> types = context.TYPES.Include("QUESTION").Include("QUESTION.ANSWER").ToList();
要檢查
var questions = types.SelectMany(t => t.QUESTION).ToList();
var answers = questionList.SelectMany(t => t.ANSWER).ToList();
但我認爲你應該直接做到這一點。
IList<QUESTION> questions = context.QUESTION.Include("TYPE").Include("ANSWER").ToList();
據我瞭解你的問題,你想獲得檢索IList<TYPE>
的所有答案。
首先,你必須包括在你的數據庫查詢所有亞型:
allTypes = db.TYPES.Include("QUESTIONS").Include("QUESTIONS.ANSWERS").ToList();
然後,只需壓平與SelectMany
的LinQ方法層次:
var items = allTypes.SelectMany(t => t.QUESTIONS.SelectMany(a => a.ANSWERS));
到那時,你應該能夠遍歷所有答案(並根據相關實體做任何需要的操作)
我試圖upvote,但由於聲譽我不能,謝謝這工作正常也。 – someone
您使用實體框架(EF)? – daniel
@daniel是EF代碼優先 – someone
這些表是否有外鍵關係? – daniel