2012-02-21 10 views
1

私は3つのテーブルCorevalue,SubjectTypeおよびQuestionを持っています。LINQ:3つの異なるテーブルから3つの異なる列の値を選択するにはどうすればよいですか?

CoreValue.Sname,SubjectType.CnameおよびQuestion.QuestionTextを選択したいと思っていますが、SQLとはどのように動作するのですか?私はこの1つは右ですが、私は、LINQにしたいquess

SELECT 
    CoreValue.Cname, 
    Question.Questiontext, 
    SubjectType.Sname 
FROM 
    Corevalue 
JOIN Question 
    ON Corevalue.CID = question.QID 
JOIN SubjecType 
    ON Question.QID = SubjectType.SID; 

:SQLでこのよう

Somethng/

アドバンスのおかげ

よろしく! - それはすべてもちろん

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 
      }; 

を、あなたのデータベースの関係をマッピングしてきた場合、あなたの代わりに単純なプロパティを好む、明示的に結合を実行する必要はないかもしれません:あなたはあまりにもSQLに参加表明する必要が

答えて

4

どのようにLINQを使用しているかによって異なります。

あなたの結合がIDの名前に関して若干奇妙に見えることに注意してください。実際にはすべてを使用する3つのエンティティが同じ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 
      }; 
+0

恐ろしく、ありがとう! – Obsivus