您好,登錄后才能下訂單哦!
這篇文章主要講解了“linq to sql多表查詢怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linq to sql多表查詢怎么實現”吧!
在手寫sql的年代,如果想從sqlserver數據庫隨機取幾條數據,可以利用order by NewId()輕松實現,要實現linq to sql多表查詢也可以用select * from A,B Where A.ID=B.ID做到,但這些功能到了linq to sql中如何實現呢?
linq to sql多表查詢關鍵點:
1.隨機排序問題:可以用 Select(d=> new {NewId=new Guid()}).OrderBy(d=>d.NewId)達到order by NewId()的效果
2.linq to sql多表查詢
from a in TableA from b in TableB where a.ID == b.ID
另外利用linq to xml還可以輕易將查詢出來的結果保存成xml(這一點比傳統xml的方法確實要新穎很多)
詳細代碼可參考我在一個項目中的示例(功能為隨機取機10條產品視頻的記錄,并生成xml供播放器調用)
using (DBDataContext db = new DBDataContext(Database.ConnectionString)) ...{ var q = db.T_Shops.Where(s => s.F_ID == new Guid("00000000-0000-0000-0000-000000000001")).Select(s =>new ...{ s.F_AutoID }).First(); string _ShopAutoId = q.F_AutoID.ToString(); var query = (from v in db.V_ProductVideos from pv in db.V_ProductTV where v.F_ShopID == new Guid("00000000-0000-0000-0000-000000000001") && v.F_ProductID == pv.F_ID && pv.F_Status == 1 && pv.F_isShow == 1 && v.F_Status == 1 && v.F_isShow == 1 && v.F_ProductStatus == 1 select new ...{ v.F_VideoS, v.F_VideoP, v.F_VideoW, v.F_VideoL, v.F_ClsAutoID, v.F_ProductName, v.F_ProductAutoID, NewId = Utils.NewComb() } ).OrderBy(p => p.NewId).Take(10); //利用linq to xml生成xml XDocument doc = new XDocument( new XElement("flvLists", from d in query select ( new XElement( "item", new XAttribute("title_p", d.F_VideoP), new XAttribute("title_s", d.F_VideoS), new XAttribute("name", Utils.NoHtml(d.F_ProductName, 500)), new XAttribute("link", + d.F_ClsAutoID.ToString() + "/" + _ShopAutoId + "/" + d.F_ProductAutoID) )))); doc.Save(Server.MapPath("~/upload/xml/tvvideo.xml")); db.Connection.Close(); }
感謝各位的閱讀,以上就是“linq to sql多表查詢怎么實現”的內容了,經過本文的學習后,相信大家對linq to sql多表查詢怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。