次のクラスを持つクイズを作成しています
Quiz
プロパティCorrectOption
、WrongOption1
、WrongOption2
、WrongOption3
。
その中にDTO
、List<String> Options
すべての間違ったオプションと正しいオプションを含む があります。
エンティティの取得中に、DTO のオブジェクト初期化子を使用していますが、割り当てる方法がわかりません List<String> Options
。
そのために匿名メソッドを使用したことを覚えています。
select new QuestionDTO
{
Category = q.QuizCategory.Text
,
CorrectOption = q.CorrectOption
,
DifficultyLevel = q.DifficultyLevel.Text
,
Points = q.DifficultyLevel.Points.Value
,
RewardPCT = q.DifficultyLevel.RewardPCT.Value
,
Text = q.Text
,
TimerDuration = q.DifficultyLevel.TimerDuration.Value
,
Options = (qz) =>
{
List<string> ops = new List<string>();
ops.Add(q.CorrectOption);
ops.Add(q.WrongOption1);
ops.Add(q.WrongOption2);
ops.Add(q.WrongOption3);
return new List<string>().Shuffle();
}
};
しかし、次のエラーが発生します。
デリゲート型ではないため、ラムダ式を 'System.Collections.Generic.List' 型に変換できません。
アップデート
たとえば、作業を行うために、元のエンティティ クラスに読み取り専用プロパティを作成しました。しかし、もっと良い方法を教えてください。ありがとう
更新2
しかし、それはうまくいきませんでした:pはWCFTestClient.exeをフォローすると言います
指定された型メンバー 'Options' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。