0

調査の結果を集計し、そのデータに対していくつかの計算を実行してから、新しい計算をビューに返す新しいViewModelを作成しています。コレクションに通常の「文字列」データを含める方法がわかりません。

 var data = from SurveyResponseModel in db.SurveyResponseModels
                       group SurveyResponseModel by SurveyResponseModel.MemberId into resultCount
                       select new ResultsViewModel()
                       {
                           MemberId = resultCount.Key,

                           UseNewTreatmentResult = db.SurveyResponseModels.Count(r => r.UseNewTreatment),
                           UseBetterTechniqueResult = db.SurveyResponseModels.Count(r => r.UseBetterTechnique),
                           ChangesOthersResult = db.SurveyResponseModels.First(r => r.ChangesOthers),

                       };
            return View(data);

最初の部分は、ブール応答をカウントし、それらを整数としてViewModelに返します。を含むセクションはChangesOthersResult = db.SurveyResponseModels.First(r => r.ChangesOthers),、モデルから文字列を選択し、ViewModelに渡す必要があります。現在、文字列型からブール型への変更に関する構文エラーが発生しています。この構文が何であるかわかりません。

    public class SurveyResponseModel
    {
        [Key]
        public int ResponseId { get; set; }

        public int MemberId { get; set; }

        public int ProgramId { get; set; }


        [DisplayName("Use a new treatment")]
        public bool UseNewTreatment { get; set; }

        [DisplayName("Use better/more updated technique")]
        public bool UseBetterTechnique { get; set; }

        [DisplayName("Other (please specify):")]
        public string ChangesOthers { get; set; }



    }










 public class ResultsViewModel
    {

        public int MemberId { get; set; }

        public int ProgramId { get; set; }


        [DisplayName("Use a new treatment")]
        public int UseNewTreatmentResult { get; set; }

        [DisplayName("Use better/more updated technique")]
        public int UseBetterTechniqueResult { get; set; }

        [DisplayName("Other (please specify):")]
        public string ChangesOthersResult { get; set; }


    }
4

1 に答える 1

2

必要なもの:

ChangesOthersResult = db.SurveyResponseModels.Select(r => r.ChangesOthers)

またはSelectMany。最終的には、タイプと実際に選択したいものにFirstOrDefault()応じて最後に追加します。ChangesOthersResult

Select「コレクションのコレクション」を提供します(ChangesOthersコレクションタイプであると想定しています)。SelectManyコレクションのジェネリック型の「フラット化されたコレクション」ChangesOthersFirstOrDefault()後に追加すると、最初のエンティティまたはSelectの単一のコレクションが得られます。SurveyResponseModelsnull

編集

あなたがクラスを提供した後、私はそれを見てChangesOthers、それChangesOthersResultはコレクションではなく、ただのタイプstringです。したがって、行は次のようになります。

ChangesOthersResult = db.SurveyResponseModels.Select(r => r.ChangesOthers)
    .FirstOrDefault()
于 2012-06-22T16:14:47.360 に答える