LINQ
資料來源: 一個結合where、group、orderby的linq(http://yangxinde.pixnet.net/blog/post/31357272-%E4%B8%80%E5%80%8B%E7%B5%90%E5%90%88where%E3%80%81group%E3%80%81orderby%E7%9A%84linq)
保哥線上講堂:LINQ 快速上手(https://www.slideshare.net/WillHuangTW/linq-46081487)
ASP.NET MVC-LINQ 之 insert update select(https://dotblogs.com.tw/newmonkey48/2013/09/16/118726)
List<Object> arr= new List<Object>();
using (DataBaseDataContext db = new DataBaseDataContext())
{
//where like
arrR = (from o in db.table
where o.field.Contains("text")
//group
/*where o.field== "text"
group o.field1 new Obj (){
Attribute1 = o.field1,
Attribute2 = o.field2,
Attribute3 = o.field3
} into g
//orderby g.Key.field1
select g.Key).ToList();*/
select o).ToList();
}
Select
第一種方法如上
第二種方法
var result = (from p in db.table
select p);
if(true)
result = query.Where(o=>o.p.ID == 1);
var entity = query.select(o=>o.p.ID).FirstOrDefault();
想要串接多個條件
List<Object> arr= new List<Object>();
using (DataBaseDataContext db = new DataBaseDataContext())
{
arrR = (from o in db.table
where o.field.Contains("text") && o.field2 = false
select o).ToList();
}
Insert
table row = new table();
row.ID = 1;
row.Name = "Brian";
db.table.Add(row);
db.SaveChanges();
Update
select出來之後,直接對值做修改,再儲存起來。
var query = (from o in db.table
where o.id = "abc123"
select o).FirstOrDefault();
query.name = "Brian"; //修改姓名
db.SaveChanges();
Delete
Join
在Join時,on的比較只能用 [equals] 不能用 [==]
var query = (from o in db.table
join b in db.table2 on a.ID equals b.ID
select new{a})
題外話
LINQ 不只能查詢SQL,還可以查詢清單、陣列 等等。
WHERE
假如我們想要取得清單中的某個物件,可利用下列方式。
List<Class1> ls = Class1.getList();
string str = "Brian";
Class1 obj = ls.Where(o=>o.Name == str).FirstOrDefault();
order by
.OrderByDescending(o=>o.SN)
取幾筆
.Take(count)
整數清單 轉 字串清單
List<int> to List<string>
.select(o=>o.toString()).toList()
Last updated
Was this helpful?