LINQ:如何从3个不同的表中选择3个不同列值



我有三个表CorevalueSubjectTypeQuestion

我想选择CoreValue.SnameSubjectType.CnameQuestion.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
            };

相关内容

  • 没有找到相关文章

最新更新