1

質問を保持するテーブルがあり、回答テーブルに質問 ID がリストされているテーブルもあります。重複データのために、IDのみを使用します。

私の質問は、現在のテーブルの ID に基づいて質問を「ビューに」入力する方法です。それらはすでに MainQuestionID によって結合されています。最初に DBEntities コードを使用しています。

これがページのviewModelです。

    public class AuditFormEdit
    {
    public Models.MainQuestion MainQuestionID { get; set; }

    public ICollection<MainQuestion> mainQuestion { get; set; }

    public List<SubcategoryHelper> SubcategoryHelperGet { get; set; }

    public class SubcategoryHelper : Models.SubCategory
    {
        public SubcategoryHelper(Models.SubCategory subCat)
        {
            this.SubCategoryID = subCat.SubCategoryID;
            this.SubcategoryName = subCat.SubcategoryName;
        }

    }


    public Models.MainAnswer MainAnswerInstance { get; set; }

    public List<ScoreCardCheckBoxHelper> ScoreCardCheckBoxHelperList { get; set; }

    public void InitializeScoreCheckBoxHelperList(List<Models.Score> ScoreList)
    {
        if (this.ScoreCardCheckBoxHelperList == null)
            this.ScoreCardCheckBoxHelperList = new List<ScoreCardCheckBoxHelper>();

        if (ScoreList != null
            && this.MainAnswerInstance != null)
        {
            this.ScoreCardCheckBoxHelperList.Clear();
            ScoreCardCheckBoxHelper scoreCardCheckBoxHelper;
            string scoreTypes =
                string.IsNullOrEmpty(this.MainAnswerInstance.Score) ?
                string.Empty : this.MainAnswerInstance.Score;
            foreach (Models.Score scoreType in ScoreList)
            {
                scoreCardCheckBoxHelper = new ScoreCardCheckBoxHelper(scoreType);
                if (scoreTypes.Contains(scoreType.ScoreName))
                    scoreCardCheckBoxHelper.Checked = true;
                this.ScoreCardCheckBoxHelperList.Add(scoreCardCheckBoxHelper);
            }
        }
    }


    public void PopulateCheckBoxsToScores()
    {
        this.MainAnswerInstance.Score = string.Empty;
        var scoreType = this.ScoreCardCheckBoxHelperList.Where(x => x.Checked)
                              .Select<ScoreCardCheckBoxHelper, string>(x => x.ScoreName)
                              .AsEnumerable();
        this.MainAnswerInstance.Score = string.Join(", ", scoreType);
    }


    public class ScoreCardCheckBoxHelper : Models.Score
    {
        public bool Checked { get; set; }

        public ScoreCardCheckBoxHelper() : base() { }

        public ScoreCardCheckBoxHelper(Models.Score score)
        {
            this.ScoreID = score.ScoreID;
            this.ScoreName = score.ScoreName;
        }
    }



}

ご覧のとおり、MainQuestions の ICollection を呼び出していますが、質問に入力する方法がわかりません。また、sectionID に基づいて入力する必要があります。

改訂 2:51 2012 年 9 月 21 日

または、質問のリストを表示し、それに答えると、現在表示されているテーブルではなく、回答テーブルを更新する場合、2 つをどのように関連付けますか。

4

0 に答える 0