我有三个表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
谨致问候!
您只需要在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
};