LinQ to SQL增删改查的示例分析
小编给大家分享一下LinQ to SQL增删改查的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
我们来看看LinQ to SQL,就是对数据库的查询,以前叫做DLinQ。经常看到LinQ那到底是什么呢?他是Language Integrated Query的缩写,以一种类似SQL语句的形式来对对象进行操作的编程方法。
在使用到LinQ时也会用到以前提到过的一些特性,如:匿名类型,自动化属性等等。
LinQ to SQL是一种ORM,它允许你通过编写.NET程序来控制或操作关系型数据库以达到查询的效果。你可以使用LinQ来检索数据库中的数据,也可以通过其进行数据的更新和添加。同时LinQ to SQL也支持事务,试图以及存储过程等等,通过VS2008(现在使用的是beta版本,下同)的LinQ to SQL设计器我们可以很容易定义一些实体类,我们可以通过添加一个新项来加入.dbml文件,并从数据库服务器窗口拖出数据表。
我们定义两个实体类,Artile和Category,我们也可以把存储过程拖到方法的窗口中,由于我们的存储过程和数据表的命名可能带有前缀或其他标识,我们可以查看属性窗口将他们的name属性改掉我们容易识别的名称。我们打开Designer.cs那个文件看一下,是不是生成了几个类,其中一个最重要的是以DataContext为后缀那个类(他以当前dbml文件名加DataContext为名称的类),他是这个LinQ的上下文,我们可以通过他来执行我们的操作。而上面两个是外键关系,他还生成了一个关系类,而且在Category类中好有一个Article的集合,在Article中也有一个关联属性,在赋值时还会对键值类型进行判断。
下面我们来看看实际应用的一些例子(LinQ to SQL四大护法<SELECT/INSERT/UPDATE/DELETE>):
1.从数据库中检索数据<SELECT>
//三个重载(),(string connectionString),(IDbConnection connection)
ItLivesNetDataContext cntx = new ItLivesNetDataContext();
//这个也可以在初始化ItLivesNetDataContext实例时直接进行初始化。
cntx.Connection = new SqlConnection
(ConfigurationManager.ConnectionStrings[0].ConnectionString);var articles = from a in cntx.Articles
where a.CategoryID == 1
orderby a.PostDate descending
select a;
上面的代码将返回数据库Articles表中类型ID为1的所有数据,并将其按发布时间进行降序排列。其中articles其实是IEnumerable<T>的实例,这个例子的T就是Article实体类。
2.将新数据插入到数据库中<INSERT>
//插入新类型C++ Category category = new Category { CategoryName="CPLUSPLUS",IsActived=true, ParentID = 1 }; //插入新文章,类型为C++ var article = new Article { Subject = "C++入门", Author="网魂小兵" }; category.Articles.Add(article); cntx.Categories.Add(category); cntx.SubmitChanges();
3.更新新数据<UPDATE>
Category category = cntx.Categories.Single(p =>
p.CategoryName.ToUpper() == "CSHARP");category.IsActived = true;
category.Description = "UPDATE CSHARP!";
cntx.SubmitChanges();
4.删除数据库中的数据<DELETE>
var delArtiles = from s in cntx.Articles where s.CategoryName == "CPLUSPLUS" select s; cntx.Articles.RemoveAll(delArtiles); cntx.SubmitChanges();
看完了这篇文章,相信你对"LinQ to SQL增删改查的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!