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。所以你需要指定类型。是的,我昨天已经解决了它,我只需要阅读代码就可以得到错误。再次感谢