Linq給我們帶來了很多的便利,不必時(shí)時(shí)刻刻寫sql,可以讓一個(gè)不懂T-SQL的程序猿也能實(shí)現(xiàn)簡(jiǎn)單編程,但是linq在效率上確實(shí)比不上SQL。數(shù)據(jù)量越大,效率問題就明顯。
一般查詢可以這樣寫
var v = (from c in en.T_AQI where c.DatState.Equals("2") && c.SiteID == siteID orderby c.DataTime descending //排序 select c).Take(30).ToList();//Take和top的作用一樣。ToList()就不用說了
也可以指定列查詢
var v = (from c in en.T_AQI where c.DatState.Equals("2") && c.SiteID == siteID orderby c.DataTime descending select new {name = st.Name, age= st.Age}).Take(30).ToList();//列名是自己隨意寫的
也可以鏈接查詢
var v = (from c in en.T_AQI from u in r.TabUser where c.DatState.Equals("2") && c.SiteID == siteID orderby c.DataTime descending select new{u.Name,c.Age,...}).Take(30).ToList(); //這個(gè)是多對(duì)多查詢
var v = (from c in en.T_AQI from u in en.T_AQI where c.DatState.Equals("2") && c.SiteID == c.SiteID orderby c.DataTime descending select new{name=c.Name,age=c.Age}).Take(30).ToList(); //這個(gè)是自連接查詢
var v = (from c in en.User join u in en.Role on c .RoleId equals u.ID into userlist where c.DatState.Equals("2") && c.SiteID == c.SiteID orderby c.DataTime descending select new{c.Name,c.Age,u.RoleName}).Take(30).ToList(); //這個(gè)是雙向接查詢
var v = (from c in en.T_AQI from u in r.TabUser where c.DatState.Equals("2") && c.SiteID == siteID orderby c.DataTime descending select u).Take(30).ToList(); //這個(gè)是一對(duì)多查詢
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注