【问题标题】:Querying EF and saving results (records) into a list?查询 EF 并将结果(记录)保存到列表中?
【发布时间】:2012-05-29 00:24:15
【问题描述】:

我有一个 ListQuestionDataQuestionData 类解释如下:

class QuestionData
{
    public string Question { get; set; }
    public List<Option> Answers { get; set; }
}

我使用 EF 作为 ORM(注意:QuestionData 中使用的 QuestionOption 都是 EF 的自动生成实体)。

两个表(Questions 和 Options)都有 PK-FK 关系。我想填写QuestionData 的列表,因为我必须在它们下面显示Questions 和答案。如何填写QuestionData

【问题讨论】:

    标签: .net linq entity-framework c#-4.0


    【解决方案1】:

    为了扩展 Yeonho 的答案,我想你可能需要这样的东西:

    using(QuestionContext context = new QuestionContext())
    {
        List<QuestionData> questionDatas = 
           context.Questions.Select(q => new QuestionData()
           {
              Question = q,
              Answers = q.Options.ToList()
           });
    }
    

    【讨论】:

      【解决方案2】:
      using(QuestionContext context = new QuestionContext())
      {
          List<QuestionData> questionDatas = 
             context.Questions.Select(q => new QuestionData()
             {
                Question = q.Value,
                Answers = q.Options.ToList()
             });
      }
      

      【讨论】:

      • 谢谢 Yeonho,它给出了 2 个错误。能否请您指导。 1. 在 .Select(q 上给出错误:无法将 lambda 表达式转换为类型“字符串”,因为它不是委托类型 2. 在 q.Options 上给出错误:无法隐式转换类型“System.Data.Objects.DataClasses。 EntityCollection' 到 'System.Collections.Generic.List' 请指导。
      • 在错误 1 ​​中,我假设问题实体有一个名为 Value 的字符串属性。您应该根据您的架构修改此代码。在错误 2 中,尝试将 .ToList() 添加到 q.Options。希望这会有所帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多