LinqtoSQL简单分析

本文向大家介绍Linq to SQL,可能好多人还不了解Linq to SQL,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

创新互联一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站建设、网站制作、移动互联产品、网络营销推广服务为核心业务。十余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。

本系列的文章到现在为止都是在介绍查询,难道Linq to SQL只能做查询么?不能向数据库添加数据?,肯定不是的:

 
 
 
  1. Table posts = dbContext.GetTable();  
  2. //先实例化一个新的要插入的对象  
  3. Post post = new Post();  
  4. post.BlogId = 2;  
  5. post.Title = "test";  
  6. post.Body = "test,test,test,test";  
  7. post.CreateDate = DateTime.Now;  
  8. //调用Table的InsertOnSubmit方法  
  9. posts.InsertOnSubmit(post);  
  10. //把改变提交到数据库,这个时候才真正执行了  
  11. dbContext.SubmitChanges();  
  12. //提交修改后,你就可以查询新插入的post的Id了  
  13. Console.WriteLine(post.Id); 

一个简单的不能再简单的insert into语句,加上一条返回新插入记录的标识值的语句。

如果你按照本文所说的一步步往下来,在执行上面的插入的时候肯定会碰到异常,这是因为,Id对应的数据表字段postid是该表的主键,你不应该在插入的时候赋值,有人说我实例化对象的时候确实没有给post的Id属性赋值啊,但是.net会在后台为我们将Id赋值为0,所以你要对映射对象做一下修改:

 
 
 
  1. [Column(Name="postid",IsPrimaryKey=true,IsDbGenerated=true)]  
  2. public int Id { get; set; } 

不仅仅数据表的主键要加这个属性,如果对于那些在数据库里设置了默认值的,你并不像用程序插入的时候,你也得使用,比如这里的CreateDate。

可以插入肯定就可以更新了,下面就来看看如何更新呢:

做更新的时候,你首先得从数据库查询出该对象,然后对该对象的属性进行修改,最后更新到数据库:

 
 
 
  1. var posts = from post in dbContext.GetTable()  
  2. where post.BlogId == 2  
  3. select post;  
  4. foreach (var post in posts)  
  5. post.BlogId = 5;  
  6.  
  7. dbContext.SubmitChanges(); 

Linq to SQL也会自动的帮你生成Update语句了。

有了插入,更新,查询就差一个Delete CURD就全了,对于delete更简单了,你只要调用Table的DeleteOnSubmit方法就行了,这里就不再详述。

这篇文章主要关注How Do I上面,对一个简单的单表CURD做一个比较全面的介绍,下一篇会更深入一些,将会涉及到多表的连接,两个表之间的关系怎样反应到映射上来,还将探讨一下Linq to SQL中的延迟计算的问题。本篇定位为入门级,只期望给一些初学者或者未接触过Linq的朋友一些提示。

新闻标题:LinqtoSQL简单分析
网址分享:http://www.shufengxianlan.com/qtweb/news24/215174.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联