Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多连接LINQ上的Join子句不正确_C#_Linq_Join - Fatal编程技术网

C# 多连接LINQ上的Join子句不正确

C# 多连接LINQ上的Join子句不正确,c#,linq,join,C#,Linq,Join,我有一个多连接查询,如下所示: public static List<Answer> GetDetailedAnswers(string Tag) { using (Database db = new Database()) { List<Answer> answer = from quest in db.Question

我有一个多连接查询,如下所示:

public static List<Answer> GetDetailedAnswers(string Tag)
    {
        using (Database db = new Database())
        {

            List<Answer> answer = 
                         from quest in db.Question
                         join answ in db.Answer on quest.ID equals answ.QuestionID
                         join deal in db.Dealer on answ.DealerID equals deal.ID
                         join country in db.Country on deal.CountryID equals country.CountryID
                         where quest.ParentSection == Tag
                         select new 
                         { 
                                      ParentSection = quest.ParentSection, 
                                      Section = quest.Section, 
                                      Dealer = deal.Name, 
                                      OriginalAnswer = answ.Original,
                                      EngAnswer = answ.English,
                                      Region = country.Country
                         }.ToList();
            return answer;
        }
    }
public class Answer
    {
        public string ParentSection { get; set; }
        public string Section { get; set; }
        public string Dealer { get; set; }
        public string OriginalAnswer { get; set; }
        public string EngAnswer { get; set; }
        public string Region { get; set; }
    }
我在最后一次连接时出错。它表示join子句中某个表达式的类型不正确。调用“Join”时类型推断失败
我错过了什么?Thx

请检查


deal.CountryID和country.CountryID。对于错误,这应该是相同的:AnonymousType1不包含“ToList”的定义,并且没有扩展方法“ToList”,您可以执行以下操作

  public static List<Answer> GetDetailedAnswers(string Tag)
{
    using (Database db = new Database())
    {

        List<Answer> answer = 
                     (from quest in db.Question
                     join answ in db.Answer on quest.ID equals answ.QuestionID
                     join deal in db.Dealer on answ.DealerID equals deal.ID
                     join country in db.Country on deal.CountryID equals country.CountryID
                     where quest.ParentSection == Tag
                     select new Answer
                     { 
                                  ParentSection = quest.ParentSection, 
                                  Section = quest.Section, 
                                  Dealer = deal.Name, 
                                  OriginalAnswer = answ.Original,
                                  EngAnswer = answ.English,
                                  Region = country.Country
                     }).ToList();
        return answer;
    }
}

您需要将查询包围在圆括号内,然后对其应用.ToList方法。

检查两者的数据类型是否相同,可能是一个是int,第二个是长的,我可能会问明显的问题,但上次连接中字段的数据类型是什么?这是我怀疑的错误,但我无法识别原因。一个是uniqueID,另一个是Int。更改它问题就解决了,但现在我得到了这个错误:AnonymousType1不包含“ToList”的定义,也不包含扩展方法“ToList”。我应该在课堂答案中使用make和ovveride方法吗?它起作用了,但它说我不能将列表转换为列表。我会弄明白的。感谢您,因为您尚未在select中指定答案类。检查我的答案我在里面加了答案类。若您使用new编写select only,这意味着它是匿名类型,所以它无法将其转换为List。所以你需要指定类型。是的,我昨天已经解决了它,我只需要阅读代码就可以得到错误。再次感谢