列出所有成员列表的项目,给出没有循环的实体框架的标准

时间:2017-10-11 18:57:28

标签: c# entity-framework linq database-design

我正在开发一个自定义的Google表单项目。这些是与我的问题相关的实体:

public class Form
{
    public int Id;
    public string Title;
    public virtual List<Question> Questions;
}

public class Question
{
    public int Id;
    public int? QuestionId; // Self reference pointer for nested questions (alternatives)
    public string Type; // Radio, checkbox, text or image
    public string Description;
    public virtual List<Question> Alternatives;
}

这是我当前的表格(示例): Forms Questions

从现在开始,我们假设所有内容都已正确映射/链接(使用Fluent API),并且我可以成功列出所有表单及其问题,如下所示:

public List<Form> ListForms()
{
    return context.Forms
        .Where(w => w.Questions.Any(q => q.QuestionId != null)) // Useless
        .Include(i => i.Questions.Select(q => q.Alternatives))
        .ToList();
}

根据这两个图片,上面的代码段会生成一个列表1 Form,其中包含5 Question,如果它跳过子问题则应为2(这些应该放入{ {1}}列表),如下:&#34;你的性别是什么?&#34;,&#34;你多大了?&#34;,&#34;男&#34;, &#34;非雄性&#34;和#34;我年满18岁<&strong>。

如何编辑它以列出所有表格和所有问题,除了那些NULL TYPE问题,没有使用VANILLA LOOP (在ToList()调用之后)?

0 个答案:

没有答案