[英]How do you get values from three different tables using linq to sql?
这很简单:
我有三个表:
问题:
编号(PK)
身体
问题与解答:
QuesionID
AnswerID
回答:
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>();
}
但是如何将特定的答案与其答案相关联?
我可以在一个命令中执行此操作,还是应该实际使用linq查询? 如果是这样,怎么办?
谢谢。
您可能想要进行联接(请注意,实际上可以使用联接LINQ方法,但在这里我不使用它):
using (var dataContext = new DataContext(connString)) {
questionsTable=
from q in dataContext.GetTable<Questions>()
from a in dataContext.GetTable<Answers>()
from qa in dataContext.GetTable<QuestionsAndAnswers>()
where qa.QuestionID == q.QuestionID && qa.AnswerID == a.AnswerID
select new { Question = q, Answer = a};
}
另一种选择是添加关联(导航)属性,以便您可以直接从Questions对象获得所需的信息:
[Association(Storage="QuestionsAndAnswers", OtherKey="QuestionID")]
public QuestionsAndAnswers QuestionsAndAnswers ...
然后,您只需获取问题并执行
myQuestion.QuestionsAndAnswers[0].Answer.IsCorrect
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.