我有三个表Corevalue
,SubjectType
和Question
。
我想选择CoreValue.Sname
,SubjectType.Cname
和Question.QuestionText
,我知道如何使用SQL而不是LINQ,我们将不胜感激。
在SQL中有点像这样:
SELECT
CoreValue.Cname,
Question.Questiontext,
SubjectType.Sname
FROM
Corevalue
JOIN Question
ON Corevalue.CID = question.QID
JOIN SubjecType
ON Question.QID = SubjectType.SID;
我认为这个是对的,但我想要LINQ:/
感谢Advance
最诚挚的问候!
答案 0 :(得分:4)
您只需要在SQL中表达联接:
var query = from core in db.Cores
join question in db.Questions on core.CID equals question.QID
join subject in db.Subjects on question.QID equals subject.SID
select new {
core.CoreName,
question.QuestionText,
subject.SubjectName
};
当然,如果你已经映射了数据库关系,你可能不需要显式地执行连接,而是更喜欢简单的属性 - 这一切都取决于你如何使用LINQ。
请注意,就ID的名称而言,您的联接似乎有点奇怪 - 就好像您确实有三个实体都使用完全相同的ID。我期待更像这样的事情:
var query = from core in db.Cores
join question in db.Questions on core.ID equals question.CoreID
join subject in db.Subjects on core.ID equals subject.CoreID
select new {
core.CoreName,
question.QuestionText,
subject.SubjectName
};