C#的Linq to SQL
来源:互联网 发布:淘宝店铺联盟在哪里 编辑:程序博客网 时间:2024/05/16 19:22
一、什么是Linq to SQL
Linq to SQL在使用的时候,有两种方式
(1)根据已经存在的数据库去创建实体类,这种方式只需要在设计器中,选择从“服务器资源管理器”中托动相关的数据表即可,这里不重点讨论,
(2)通过“工具箱”拖动相关的类、和关联到设计器中,然后再将这个实体类映射到实际的数据库中。那么怎么去映射到数据库中呢,具体操作方法如下
根据数据实体类创建数据库:
static void Main(string[] args)
{
StudentDataContext tt = new StudentDataContext(@"Data Source=LENOVO\MYSQLSERVER;Initial Catalog=StudentScore;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
bool b = tt.DatabaseExists();
if (!b)
{
tt.CreateDatabase();
}
Console.WriteLine("创建成功!");
{
StudentDataContext tt = new StudentDataContext(@"Data Source=LENOVO\MYSQLSERVER;Initial Catalog=StudentScore;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
bool b = tt.DatabaseExists();
if (!b)
{
tt.CreateDatabase();
}
Console.WriteLine("创建成功!");
}
即数据库的创建是通过DataContext类去实现的,在创建自定义的实体类的时候,都是从这个类继承的。
二、数据库的操作
DataContext类是程序与数据之间的桥梁,它提供了数据库的种种操作方法,包括“查询、添加、修改、删除” 四大主要操作。
1、添加数据
因为使用第二种方式创建的数据库,是后来映射到数据库中的,数据库中还没有数据,需要添加数据进去,添加数据有两种方式
(1)InsertOnSubmit()方法将单个实体添加,它是Table<T>类的对象的方法
//给数据库的表添加数据
StudentDataContext dataContext = new StudentDataContext();
Student[] students = new Student[3] {new Student(),new Student(),new Student() };
students[0].Name = "张三"; students[0].ScoreID = "1"; students[0].Age = "23"; students[0].Sex = "男";
students[1].Name = "李四"; students[1].ScoreID = "2"; students[1].Age = "24"; students[1].Sex = "男";
students[2].Name = "菲菲"; students[2].ScoreID = "3"; students[2].Age = "25"; students[2].Sex = "女";
for (int i = 0; i < students.Length; i++)
{
dataContext.Student.InsertOnSubmit(students[i]); //每次只添加一个数据记录,即一个数据表的对象
dataContext.SubmitChanges(); //最后一定要提交更改
}
Console.WriteLine("添加成功!");
StudentDataContext dataContext = new StudentDataContext();
Student[] students = new Student[3] {new Student(),new Student(),new Student() };
students[0].Name = "张三"; students[0].ScoreID = "1"; students[0].Age = "23"; students[0].Sex = "男";
students[1].Name = "李四"; students[1].ScoreID = "2"; students[1].Age = "24"; students[1].Sex = "男";
students[2].Name = "菲菲"; students[2].ScoreID = "3"; students[2].Age = "25"; students[2].Sex = "女";
for (int i = 0; i < students.Length; i++)
{
dataContext.Student.InsertOnSubmit(students[i]); //每次只添加一个数据记录,即一个数据表的对象
dataContext.SubmitChanges(); //最后一定要提交更改
}
Console.WriteLine("添加成功!");
添加之后,我们可以查看自己的数据库的数据表,结果如下:
(2)InsertAllOnSubmit<TSubEntity>()将实体的集合添加,它是Table<T>类的对象的方法,它添加的是数据集合,一次添加多个数据记录
//给数据库的表添加数据
StudentDataContext dataContext = new StudentDataContext();
StudentDataContext dataContext = new StudentDataContext();
Score[] scores = new Score[3] { new Score(), new Score(), new Score() };
scores[0].ScoreID = "1"; scores[0].Chinese = "100"; scores[0].Math = "101"; scores[0].English = "102";
scores[1].ScoreID = "2"; scores[1].Chinese = "110"; scores[1].Math = "111"; scores[1].English = "112";
scores[2].ScoreID = "3"; scores[2].Chinese = "120"; scores[2].Math = "121"; scores[2].English = "122";
scores[0].ScoreID = "1"; scores[0].Chinese = "100"; scores[0].Math = "101"; scores[0].English = "102";
scores[1].ScoreID = "2"; scores[1].Chinese = "110"; scores[1].Math = "111"; scores[1].English = "112";
scores[2].ScoreID = "3"; scores[2].Chinese = "120"; scores[2].Math = "121"; scores[2].English = "122";
dataContext.Score.InsertAllOnSubmit<Score>(scores); //添加一个数据集合
dataContext.SubmitChanges(); //最后一定要提交更改
Console.WriteLine("添加成功!");
添加数据之后,得到的结果如下:
2、查询操作
StudentDataContext dataContext = new StudentDataContext();
IEnumerable<Score> query = from score in dataContext.Score
orderby score.Chinese //根据语文分数进行查询
select score;
foreach (var item in query)
{
Console.WriteLine($"{item.ScoreID} {item.Chinese} {item.Math} {item.English}");
}
IEnumerable<Score> query = from score in dataContext.Score
orderby score.Chinese //根据语文分数进行查询
select score;
foreach (var item in query)
{
Console.WriteLine($"{item.ScoreID} {item.Chinese} {item.Math} {item.English}");
}
查询的结果如下:
3、修改数据操作
StudentDataContext dataContext = new StudentDataContext();
foreach (Student student in dataContext.Student)
{
student.Age = student.Age + 2; //每个学生的年龄加2
}
dataContext.SubmitChanges(); //提交更改
foreach (Student student in dataContext.Student)
{
student.Age = student.Age + 2; //每个学生的年龄加2
}
dataContext.SubmitChanges(); //提交更改
4、删除操作
DeleteOnSubmit()方法从Table<T>类的实例中删除单个实体,
DeleteAllOnSubmit<TSubEntity>()方法将从 Table<T>类的实例中删除实体的集合。
如下所示:
StudentDataContext tt = new StudentDataContext();
int id=Convert.ToInt32(e.CommandArgument);
var result =from stu in tt.Student where stu.Name ==id select stu;//找到需要删除的记录
tt.UserInfo.DeleteAllOnSubmit(result); //删除数据集合
tt.SubmitChanges(); //提交更改
三、总结
常见的四大操作“添加、查询、修改、删除” ,
“查询” 使用的是Linq语法,不需要提交更改
其他三个操作方法最后都是需要提交更改的,tt.SubminChanges();
0 0
- C#的Linq to SQL
- C# Linq to Sql
- c# linq to sql
- C# linq to sql
- C# LINQ TO SQL
- c# linq to sql 的基本操作
- C# 3.0与Linq To Sql的学习方法--浅谈
- LINQ To SQL深入学习系列之一(C#3.0为LINQ的加强之一)
- linq,linq to sql
- c# Linq to sql 基本查询例子
- LinQ To SQL 添加、删除、更新C#
- C# 区间合并(Linq To Sql)
- C# 区间合并(Linq To Sql)
- C# LINQ to SQL快速上手
- LinQ To SQL 添加、删除、更新C#
- LINQ to SQL的不足
- LINQ to SQL的不足
- LINQ to SQL 的EntitySet)>)
- SQL:同表前后记录计算
- Automatic Memory Management(AMM)…
- PHP设计模式系列:目录
- 导入导出统计信息一例
- 备份恢复统计信息
- C#的Linq to SQL
- 如何捕获问题SQL解决过度CPU消耗问…
- 如何诊断和解决CPU高度消耗(100%)…
- DBA Scripts:获得跟踪文件名称的ge…
- v$sqlarea,v$sql,v$sqltext的区别
- sql tunning advisor的使用
- Oracle执行计划不走索引的原因总结
- 关于 /etc/passwd 文件
- 关于v$process与v$session o…