【问题标题】:Linq assign to a List<> List BindingLinq 分配给 List<> 列表绑定
【发布时间】:2012-07-25 10:33:00
【问题描述】:

我在运行时收到此错误:

异常详细信息:System.InvalidOperationException:未处理的绑定类型:ListBinding

  • Choice_A、_b、_C 是字符串
  • “选择”是列表

  var qs = (from questions in dc.Survey_Questions
                      where questions.Survey_ID == surveyid                     
                      select new SQuestions
                      {
                          QuestionID = questions.Question_ID,                          
                          Description = questions.Description,
                          Choice_A = questions.Choice_A,  
                          Choice_B = questions.Choice_B,  
                          Choice_C = questions.Choice_C,
                         **Choices =  {questions.Choice_A, questions.Choice_B,
          questions.Choice_C}**
   }).ToList();

基本上,我想知道如何将 Choice_A、Choice_B、Choice_C 的值分配给 List Choices。 提前致谢。

【问题讨论】:

  • 你在哪里得到错误?您能否提供代码示例并格式化您当前的问题?
  • 两个问题:(A):您使用的是什么 LINQ 提供程序?如果是EntityFramework,是什么版本? (B): 你为什么一直撤消我的代码格式?您只会降低人们想要帮助您的可能性,因为他们无法破译您的代码。
  • A. Linq to SQL - B. 我无意编辑您的答案。我是新来的,我很难格式化自己的 Q/A。有人(也许你)发布了一个有效的解决方案,但我不再看到它了。有的话请再发一次。谢谢

标签: linq entity-framework list binding


【解决方案1】:

你可以试试这个。如果你已经有以下两个类

public class Question
{
    public int Question_ID { get; set; }
    public int Survey_ID { get; set; }

    public String Description { get; set; }
    public String Choice_A { get; set; }
    public String Choice_B { get; set; }
    public String Choice_C { get; set; }
}

public class SQuestions
{
    public int QuestionID { get; set; }
    public String Description { get; set; }
    public String Choice_A { get; set; }
    public String Choice_B { get; set; }
    public String Choice_C { get; set; }

    public List<String> Choices { get; set; }
}

那么 LINQ 查询将是

var qs = (from question in dc.Survey_Questions
where question.Survey_ID == surveyid
select new SQuestions
{
   QuestionID = question.Question_ID,
   Description = question.Description,
   Choice_A = question.Choice_A,
   Choice_B = question.Choice_B,
   Choice_C = question.Choice_C,
   Choices = new List<string>(new String[] { question.Choice_A,question.Choice_B, question.Choice_C })
}).ToList();

【讨论】:

    【解决方案2】:

    LINQ to Entities 不支持此绑定语法。不过,您应该能够做到这一点:

    qs = (from questions in dc.Survey_Questions
                      where questions.Survey_ID == surveyid                     
                      select new SQuestions
                      {
                          QuestionID = questions.Question_ID,                          
                          Description = questions.Description,
                          Choice_A = questions.Choice_A,  
                          Choice_B = questions.Choice_B,  
                          Choice_C = questions.Choice_C,
                         Choices = new List<string> {questions.Choice_A, questions.Choice_B,
          questions.Choice_C}
    }).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多