1

我有三张桌子CorevalueSubjectTypeQuestion

我想选择CoreValue.SnameSubjectType.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:/

感谢提前

最好的祝福!

4

1 回答 1

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
            };
于 2012-02-21T17:29:00.920 回答