Linq to sqlクエリ(単一テーブル、マルチテーブルクエリ)
1757 ワード
データベースに関するクエリーでは、マルチテーブルの接続クエリーが頻繁に使用されます.ここではlinqに関するクエリー機能を簡単に示します.
1、単一テーブルのクエリー
内部接続はSqLのinner joinと同様に,2つのシーケンスの交差を見つける.
3、外部接続
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()メソッドを呼び出す必要があることに注意してください.