设为首页 加入收藏

TOP

LINQ之增删改查
2015-11-21 01:54:03 来源: 作者: 【 】 浏览:0
Tags:LINQ 删改

前言:

LINQ,语言集成查询(LanguageIntegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。

vcHL1ebV/df2z+7Ev7XEyrG68qOsyMPE49GnyrLDtLa8v8nS1LTTyN21xMilvdPK3Mu1o7q296OsttTO0sC0y7W63LzytaWjrM7lzOzRp8+wy8TR+barzvfSssrHv8nS1L3Tyty1xKGjPC9wPgo8cD4gICC+zdLUTElOUc6qwP3AtMu1o6y21NPayOvDxdXfwLTLtaOswu3Jz77N0qrJz8rWz+7Ev6OsxMfDtNGnz7C1xMS/tcTQ1Mqut9a1xMP3yLeho7zIyLu/ydLU08PAtLT6zOZTUUzT777ko6zP1Mi7z8jIpcHLveLL/LXE1PbJvrjEsunKx8rXz8jSqtf2tcSho7TTvLzK9b3Htsi2+NHUo6xMSU5RtqjS5cHLtPPUvDQwuPay6dGvstnX97f7o6zI53NlbGVjdKGiZnJvbaGiaW6hondoZXJl0tS8sG9yZGVyIGJ5o6hDI9bQo6mho8q508PV4tCpstnX97f7v8nS1LHg0LSy6dGv0+++5KGjsru5/aOs1eLQqbLp0a+7ub/J0tS7+dPauty24MDg0M21xMr9vt2jrMO/uPbK/b7dwODQzba80OjSqtK7uPa1pbbAtcRMSU5RwODQzaGjxuTKtb+0v7TV4tCpuN+088nPtcSy6dGvstnX97f7o6y6zc7Sw8e1sbP10LS1xFNRTNPvvuTKx9K70fm1xKGj1ruyu7n9ysfLs9Dy09Cx5LuvtvjS0aGjPC9wPgoKCjxoMT5MSU5R1PbJvrjEo7o8L2gxPgoKPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:sql;">using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Common; namespace FirstLinq { public partial class _Default : Page { NorthwindDataContext ctx = new NorthwindDataContext("Data Source=.;Initial Catalog=linq;Persist Security Info=True;User ID=sa;Password=123456"); protected void Page_Load(object sender, EventArgs e) { //Linq1(); //Linq2(); Linq3(); } ///

/// 增删改查 /// private void Linq3() { //增 t_User user = new t_User(); user.ID = 1; user.UserName = "周洲"; user.Pwd = "11111"; ctx.t_User.InsertOnSubmit(user); ctx.SubmitChanges(); //改 t_User userUpdate = ctx.t_User.SingleOrDefault(t_User => t_User.ID == 0); userUpdate.UserName = "周洲改名字"; ctx.SubmitChanges(); //删 t_User userDelete = (from userinfo in ctx.t_User where userinfo.ID == 1 select userinfo).FirstOrDefault(); if (userDelete != null) { ctx.t_User.DeleteOnSubmit(userDelete); ctx.SubmitChanges(); } }

LING查:


        /// 
        /// 熟悉Linq to sql语法
        /// 
        private void Linq2()
        {
            Customers customer = new Customers();

            //执行普通的sql语句,查询CustomerID="ANATR"的记录
            IEnumerable customers = ctx.ExecuteQuery("select * from Customers where CustomerID='ANATR'");
            customer = customers.First();
            Response.Write(customer.CustomerID);

            //使用Linq查询单条记录
            var cus = from c in ctx.Customers where c.CustomerID.Equals("ANATR") select c;
            customer = cus.First();
            Response.Write(customer.CompanyName);

            //查询结果集,语法:from 临时表名 in 表集合 orderby 临时表名.字段名 升级序 select 临时表名
            gdvCustomers.DataSource = from cust in ctx.Customers where cust.CustomerID != "ANATR" orderby cust.CompanyName descending select cust;
            gdvCustomers.DataBind();
        }

小结:

LINQ的原理其实挺简单,LINQ像是把面向对象和关系型数据模型结合了起来。这样的一种技术就把数据真正映射成一个对象,方便去操作和管理。你再也不必去根据不同的情况用字符串拼接的办法生成SQL语句,而是专心于对象模型的处理即可,这些方法层面的操作都会被转换成对应的增删改查语句,在submit的时候全部转到数据库中。总而言之,linq to sql是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇unicode下,读取数据库乱码问题 下一篇greenplum全量恢复gprecoverseg-F..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: