これは「深入りしすぎ」の場合かもしれませんが、とにかく聞いてみようと思いました。私は次のモデルを持っています:
public class Exam
{
public int ID {get; set;}
//...other Exam properties
public virtual ICollection<ExamResults> Results {get; set;}
}
public class ExamResults
{
public int ExamId {get; set;}
//...other Exam Result properties
public int ExamDomainId {get; set;}
public virtual ExamDomain ExamDomain {get; set;}
}
public class ExamDomain
{
public int ID {get; set;}
public String DomainName {get; set;}
//...more stuff
}
したがって、平易な英語では、Exam には ExamResults のコレクションがあります。各 ExamResult には ExamDomain があり、各 ExamDomain には名前があります。
問題はこれです:私のビューは、使用するたびに新しいデータベースクエリを作成します
@Html.DisplayFor(e => e.exampleResult.ExamDomain.DomainName)
Exam には Exam のナビゲーション プロパティがないため、最初のコントローラー クエリに ExamDomain を含めることはできません。例:
//The below does not work because ExamResults is a collection, not a record
var exam = db.Exams.Include(e => e.ExamResults.ExamDomain)...
//The code below also does not work, but it does run
var exam = db.Exams.Include(e =
そうは言っても、すべての ExamResult に対して追加のクエリを実行せずに、ExamDomain テーブルから必要なすべての DomainNames を取得するにはどうすればよいでしょうか?
PS:ビューモデルはありますが、この質問の目的には関係ありません。