C# 如何使用linq to sql从三个不同的表中获取值?

C# 如何使用linq to sql从三个不同的表中获取值?,c#,linq-to-sql,C#,Linq To Sql,这很简单: 我有三张桌子: 问题: ID(主键) 身体 问题和答案: 问题ID 回答 答案: ID 正文 不正确 每个都有一个对应的类: [Table] public class Questions { [Column]public int ID; [Column]public string Body; } [Table] public class QuestionsAndAnswers { [Column]public int Questi

这很简单:

我有三张桌子:
问题:
ID(主键)
身体

问题和答案:
问题ID
回答

答案:
ID
正文
不正确

每个都有一个对应的类:

[Table]
public class Questions  
{  
  [Column]public int ID;  
  [Column]public string Body;  
}   

[Table]      
public class QuestionsAndAnswers   
{
  [Column]public int QuestionID;
  [Column]public int AnswerID;  
}  

[Table]
public class Answers
{
  [Column]public int AnswerID;  
  [Column]public string Body;
  [Column]public bool IsCorrect;
}  
我需要一个问题和所有答案

我知道如何回答所有问题:

private Table<Questions> questionsTable;  
public SQLQuestionsRepository (string connString)  
{  
  questionsTable=(new DataContext(connString)).GetTable<Questions>();
}  
私有表;
公共SQLQuestionsRepository(字符串connString)
{  
questionsTable=(新数据上下文(connString)).GetTable();
}  
但是我如何将一个特定的答案与它的答案联系起来呢?
我可以在一个命令中完成,还是应该实际使用linq查询?如果是,怎么做

谢谢。

您可能需要进行连接(请注意,实际上您可以使用连接LINQ方法,但我这里不使用它):

然后,你就可以简单地提出问题并做些什么

myQuestion.QuestionsAndAnswers[0].Answer.IsCorrect

我应该使用EntitySet/EntityRef吗?如果您使用的是LINQ to SQL设计器,它应该自动将属性添加到模型类中。通常,它为->1关系创建的私有字段的类型为EntityRef,而公共属性的类型为T(实体)。->许多关系通常创建为EntitySet。但是,如果你使用的是设计器,它应该为你处理所有这些。。。
[Association(Storage="QuestionsAndAnswers", OtherKey="QuestionID")]
public QuestionsAndAnswers QuestionsAndAnswers ...
myQuestion.QuestionsAndAnswers[0].Answer.IsCorrect