LINQ = Language Integrated Query(集成查询语言)
Linq是微软在.NET Framework 3.5中信增加的一个特性。它是用来查询数据库和对数据库查询的本地集合带来安全性。它非常简单但是很有组织性。一个普通的查询语言,适用于SQL, XML, 本地collections 和 第三方APIs 比如SharePoint.
本质上,Linq提供的就是一个轻量级的编程数据集成。这是非常有价值的,尤其是当今每天面对的数据和未来的大数据。
接下来我们就看看这个神秘的东东。
第一步:
打开你的Visual Studio 并且创建一个新的控制台项目.
然后打开服务器资源管理,创建一个新的数据库,新增一张Studuent表增加几个字段。
打开你的项目的解决方案目录,右击工程点击添加新增项。
查找LINQ-To-SQL 并添加,
你会看到一个空白的DataClasses1.dbml 文件,在这个文件中你可以拖动你的表放在 DataClasses1.dbml 文件扩展上.
第二步:
如何通过 LINQ-To-SQL 向数据库中增删改查。
/// <summary>
/// 插入数据
/// </summary>
public void insert()
{
// these are the class data members through we will send our objects data in the database
int id = 1;
string name = "2";
string fname = "2";
int age = 3;
string sem = "4";
// this is the data context class the main class which handles
// all the functionality in this will pass the connection string of our database file.
DataClasses1DataContext db = new DataClasses1DataContext("data source=192.168.1.150;initial catalog=bageDB;persist security info=True;user id=tcps;password=t123456");
// this is the table class which we drag on our linq to sql file
Student objStudentTable = new Student();
objStudentTable.id = id;
objStudentTable.name = name;
objStudentTable.fname = fname;
objStudentTable.age = age;
objStudentTable.sem = sem;
db.Student.InsertOnSubmit(objStudentTable); // this is built in function.
db.SubmitChanges();// here is the final query will run in the data context class.
}
/// <summary>
/// 查询数据
/// </summary>
void Select()
{
DataClasses1DataContext db = new DataClasses1DataContext("data source=192.168.1.150;initial catalog=bageDB;persist security info=True;user id=tcps;password=t123456");
var selectQuery = from s in db.Student
select s;
foreach (Student s in selectQuery)
{
}
}
/// <summary>
/// 删除数据
/// </summary>
void Delete()
{
int id = 1;
DataClasses1DataContext db = new DataClasses1DataContext("data source=192.168.1.150;initial catalog=bageDB;persist security info=True;user id=tcps;password=t123456");
var delete = from p in db.Student
where p.id == id
select p;
db.Student.DeleteAllOnSubmit(delete);
db.SubmitChanges();
Student objStudentTable = db.Student.Single(c => c.id == id);
}
/// <summary>
/// 更新数据
/// </summary>
void update()
{
DataClasses1DataContext db = new DataClasses1DataContext("data source=192.168.1.150;initial catalog=bageDB;persist security info=True;user id=tcps;password=t123456");
Student objStudentTable = new Student();
int id = 1;
var update = from s1 in db.Student
where s1.id == id
select s1;
foreach (var v in update)
v.name = "bage";
db.SubmitChanges();
}
总结:
LINQ To SQL 与 LINQ To EF 异同点
LINQ To SQL 与 LINQ To EF 语法差异也比较明显。
LINQ to SQL使用的命名空间是System.Data.Linq。
LINQ to EF使用的命名空间是System.Data.Entity。
LINQ To SQL 与 LINQ To EF 相同点
两个都需要引用System.Linq类库。LINQ查询语法一样,要使用from、where、orderby等关键字。