【发布时间】:2014-07-02 08:43:44
【问题描述】:
我创建了以下 DTO:
public class TestAndQuestionDTO
{
public string Name { get; set; }
public int QuestionsCount { get; set; }
public ICollection<TestAndQuestionDTO.Questions> TestQuestions { get; set; }
public class Questions
{
public Guid QuestionUId { get; set; }
}
}
我正在尝试使用 LINQ 填充此内容,但我被困在如何填充内部 Questions 类上。
这是我目前所拥有的:
var result = await db.Tests
.Include(t => t.TestQuestions)
.Where(t => t.TestId == id)
.Select(t => new TestAndQuestionDTO
{
Name = t.Title,
TestQuestions = new TestAndQuestionDTO.Questions
{
QuestionUId = t.TestQuestions. ????
}
})
.ToListAsync();
谁能告诉我如何使用从我的集合中带回的数据填充 TestQuestions 集合字段:.Include(t => t.TestQuestions) 例如,我是否必须在 TestAndQuestionDTO 中有一个构造函数来创建一个 TestQuestions 集合?
这是我的测试类供参考:
public partial class Test
{
public Test()
{
this.TestQuestions = new HashSet<TestQuestion>();
}
public int TestId { get; set; }
public string Title { get; set; }
public virtual ICollection<TestQuestion> TestQuestions { get; set; }
}
【问题讨论】:
-
为什么你不能在选择中只做
TestQuestions = t.TestQuestions? -
因为左边的TestQuestions 类只有一个字段,而t.TestQuestions 有很多字段。如果我错了,请纠正我,但我认为我应该将它们一一对应。