我正在创建一个测验,其中包含以下课程
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();
}
};
但它会出现以下错误。
无法将lambda表达式转换为类型'System.Collections.Generic.List',因为它不是委托类型。
更新
例如,我在原始实体类上创建了一个只读属性来完成工作。但请告诉我更好的方法。 感谢
UPDATE2
但它不起作用:p表示关注WCFTestClient.exe
LINQ to不支持指定的类型成员'Options' 实体。仅初始化程序,实体成员和实体导航 支持属性。
答案 0 :(得分:0)
陷入类似的问题。我可以通过在查询上调用ToList()
然后单独查询Select new {...}