LINQ之增刪改查,LINQ之增刪改

來源:互聯網
上載者:User

LINQ之增刪改查,LINQ之增刪改
前言:

   LINQ,Language-integrated Query (LINQ)(LanguageIntegrated Query)是一組用於c#和Visual Basic語言的擴充。它允許編寫C#或者Visual Basic代碼以查詢資料庫相同的方式操作記憶體資料。

   從技術角度而言,LINQ定義了大約40個查詢操作符,如select、from、in、where以及order by(C#中)。使用這些操作符可以編寫查詢語句。不過,這些查詢還可以基於很多類型的資料,每個資料類型都需要一個單獨的LINQ類型。







   開始學習LinQ總是抱著一種感覺自己很虛的心情,做項目了,結果還要臨時學習新的內容:PD、EF、LINQ、MongDB。難道是之前學的東西都沒有用呢?就抱著這樣的疑問,問師傅們。加上今天米老師的講課。才明白了什麼是即學式。平時學習是在培養一種能力,等到了真正做項目的時候,讓你學什麼都可以從容的去接受說:恩,對我來說很簡單,五天學習四樣東西也是可以接受的。

   就以LINQ為例來說,對於入門者來說,馬上就要上手項目,那麼學習的目的性十分的明確。既然可以用來代替SQL語句,顯然先去瞭解它的增刪改查是首先要做的。從技術角度而言,LINQ定義了大約40個查詢操作符,如select、from、in、where以及order by(C#中)。使用這些操作符可以編寫查詢語句。不過,這些查詢還可以基於很多類型的資料,每個資料類型都需要一個單獨的LINQ類型。其實看看這些高大上的查詢操作符,和我們當初寫的SQL語句是一樣的。只不過是順序有變化而已。



LINQ增刪改:


<span style="font-size:18px;">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();        }        /// <summary>        /// 增刪改查        /// </summary>        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();            }        }</span>



LING查:

        /// <summary>        /// 熟悉Linq to sql文法        /// </summary>        private void Linq2()        {            Customers customer = new Customers();            //執行普通的sql語句,查詢CustomerID="ANATR"的記錄            IEnumerable<Customers> customers = ctx.ExecuteQuery<Customers>("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強大的智能感知功能的協助。 

 




相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.