一、什么是LINQ
1.定义:LINQ是Language Integrate Query的缩写,它在对象和数据之间建立一种对应关系,可以使用访问内存对象的方式查询数据集合。
2.特点:由于LINQ中查询表达式访问的是一个对象,所以该对象本身可以表示各种类型的数据源。比如SQL Server数据库、XML文档、ADO.NET数据集,以及内存中的数据集合。
3.有关接口和类
(1)接口
1)IEnumerable<T>接口:它表示可以查询的数据集合,一个查询通常是逐个对集合中的元素进行筛选操作,返回一个新的IEnumerable<T>对象,用来保存查询结果。
2)IQueryable<T>接口:它继承了IEnumerable<T>接口,表示一个可以查询的表达式目录树。
(2)类
1)Enumerable类:通过对IEnumerable<T>提供扩展方法,实现LINQ标准查询运算符。包括过滤、导航、排序、查询、联接、求和、求最大值、求最小值等操作。
2)Queryable类:通过对IQueryable<T>提供扩展方法,实现LINQ标准查询运算符。包括过滤、导航、排序、查询、联接、求和、求最大值、求最小值等操作。
二、操作
1.添加
goods goods = new goods();
//绑定数据
goods.ID = Convert.ToInt32(TextBox1.Text);
goods.name = TextBox2.Text;
goods.price = Convert.ToDecimal(TextBox3.Text);
goods.counts = Convert.ToInt32(TextBox4.Text);
data.goods.InsertOnSubmit(goods);//添加数据
data.SubmitChanges();//执行添加数据操作
2.删除
int id = Convert.ToInt32(TextBox9.Text);
//查询方式一
var result = from message in data.goods where message.ID == id select message;//查出要删除的数据源
//查询方式二
var result = data.goods.Where(r=>r.ID==id).First();//Lambda表达式查询
data.goods.DeleteAllOnSubmit(result);//准备删除
data.SubmitChanges();//执行删除
3.修改
int id = Convert.ToInt32(TextBox5.Text);
//查询方式一
var result = from message in data.goods where message.ID == id select message;
foreach (goods datas in result)//遍历修改数据
{
datas.name = TextBox6.Text;
datas.price = Convert.ToDecimal(TextBox7.Text); ;
datas.counts = Convert.ToInt32(TextBox8.Text);
}
//查询方式二
var result = data.goods.Where(r=>r.ID==id).FirstOrDefault();
result.name = TextBox6.Text;//修改数据
result.price = Convert.ToDecimal(TextBox7.Text);
result.counts = Convert.ToInt32(TextBox8.Text);
data.SubmitChanges();//执行修改