在這篇中主要紀錄一些常見的C# LINQ寫法,通常搭配資料庫EF Core使用。
1.簡單取得匹配某ID的”複數”筆資料列
1 | var query = |
2.取得某”單筆”物件資料
作法1:
1 | var query = (from a in _context.Users |
作法2:
1 | var query = _context.Products.FirstOrDefault(x => x.Id == shipmentOrderDetail.ProductId); |
差別在一個全是用.的方式寫。
3.群組資料結果。此例將日期變成群組,統計每日期具有的資料筆數。
且使用匿名class建立搜尋結果。
1 | var query = from a in _context.ShipmentOrders |
4.主表a之後inner join b表的資料。
1 | var query = from a in _context.ReturnShipmentOrders |
5.LINQ子查詢,Category表資料在另一個多對多表上,使用子查詢去取得結果。
1 | var query = from a in _context.Products |
6.取得總數統計,在此例以取得某年的Total加總。
1 | var query = (from a in _context.ShipmentOrders |
7.取得查詢的結果數量
1 | var query = (int)(from a in _context.Products |
結論
主要在這篇中紀錄實作常見會寫到的作法。
此外,如果熟悉LINQ後反而會造成原生SQL語法淡忘,所以還是要加減注意一下原生作法。