Linq to sqlクエリ(単一テーブル、マルチテーブルクエリ)

1757 ワード

データベースに関するクエリーでは、マルチテーブルの接続クエリーが頻繁に使用されます.ここではlinqに関するクエリー機能を簡単に示します.
1、単一テーブルのクエリー
var query = from tc in db.tbClass
	     where tc.ClassID == "1"
            //   tbClass
	    select new {
	    ClassID=tc.ClassID,
	    ClassName=tc.ClassName
			}
、マルチテーブル接続クエリー
var query = from s in db.tbStudents
                            join c in db.tbClass on s.ClassID equals c.ClassID
                            where s.ClassID == 3
                            select new
                            {
                                ClassID = s.ClassID,
                                ClassName = c.ClassName,
                                Student = new
                                {
                                    Name = s.Name,
                                    StudentID = s.StudentID
                                }
                            };

内部接続はSqLのinner joinと同様に,2つのシーケンスの交差を見つける.
3、外部接続
var query = from s in db.tbStudents
                            join c in db.tbClass on s.ClassID equals c.ClassID into tbC
                            from tbCw in tbC.DefaultIfEmpty()
                            where s.ClassID == 3
                            select new
                            {
                                ClassID = s.ClassID,
                                ClassName = tbCw.ClassName,
                                Student = new
                                {
                                    Name = s.Name,
                                    StudentID = s.StudentID
                                }
                            };
外部に接続するときfrom外部テーブルを接続するときにintoを新しい変数に行い、DefaultIfEmpty()メソッドを呼び出す必要があることに注意してください.