LinQ to SQL 查詢

來源:互聯網
上載者:User

標籤:

LINQ to SQL 是將對象關係映射到.NET架構中的一種實現。它可以將關聯式資料庫映射為.NET Framework中的一些類。 然後,開發人員就可以通過使用 LINQ to SQL對資料庫中的資料進行查詢、修改、插入、刪除等操作。

LINQ to SQL類映射到SQL Server資料庫中的表,這些類被稱做“實體類”,實體類中的屬性或欄位對應到SQL server 資料庫中表的列,實體類之間的關聯映射到 SQL Server資料庫中的外鍵關係,LINQ to SQL類中的方法映射為SQL 資料庫中 的預存程序或函數。下表為LINQ to SQL物件模型和 SQL Server資料庫中的對象的映射關係。

先添加LINQ to SQL類  xxxxDB.dbml   記住你的名稱     在App_Code中開啟xxxxDB.dbml 把需要操作的表拖進去即可

建立DBML檔案,其中包含了*.dbml.layout檔案和 *.designer.cs檔案。 其中*.dbml.layout儲存了 Dbml檔案的布局。 *designer.cs檔案是Visual Studio 2008整合式開發環境調用代碼產生工具SqlMetail創 建的dbml檔案的代碼。

DataContext稱為資料內容,它為LINQ to SQL 提供操作資料庫的入口,如果使用LINQ to SQL 操作資料庫,則首先需要為資料庫建立一個繼承於DataContext類的自訂的資料內容類,並在該類中定義表,以及操作資料的方法等。

DataContext類充當SQL Server資料庫與映射到該資料庫的LINQ to SQL實體類之間的管道,它包含用於串連資料庫以及操作資料庫資料的連接字串資訊和方法。DataContext類能夠通過資料庫連接或連接字串來映射資料庫中的所有實體的源,並跟蹤和標識使用者對資料庫的更改。使用者可以調用其SubmitChanges()方法將所有更改提交到資料庫。

 

簡單查詢

 NorthwindDBDataContext dc = new NorthwindDBDataContext();   //添加LINQ to SQL類時起的名字是什麼這就是什麼        var result = from a in dc.Products                     where a.UnitPrice.GetValueOrDefault()<10                     select a;    //LINQ查詢語句  找到價格小於10的資料        GridView1.DataSource = result;        GridView1.DataBind();

聯集查詢

 LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);        var result = from user in db.UserInfo                     join ur in db.UserRole on user.ID equals ur.UserID                     join role in db.Role on ur.RoleID equals role.ID                     where user.ID < 200                     select new                     {                         ID = user.ID, //顯示ID,使用者名稱,電子郵箱和角色                         UserName = user.Username,                          Email = user.Email,                         RoleName = role.RoleName                     };        dl_List.DataSource = result;        dl_List.DataBind();

**分組查詢和彙總查詢

from p in dc.Products
group p(分組對象)  by p.CategoryID(分組依據)  into g      //g裡面就是p的集合     g.key=p.CategoryID

  select    new{     }    //顯示什麼這裡就寫什麼

NorthwindDBDataContext dc = new NorthwindDBDataContext();        //根據產品ID來得到最貴的產品價格和最低的產品價格        var result = from p in dc.Products                     group p by p.CategoryID into g                     select new     //映射到新的匿名對象  需要顯示什麼裡面就去產生什麼                     {                         CateID=g.Key,          //by和面接什麼  g.key就是什麼                         Max=g.Max((x)=>x.UnitPrice),  //彙總函式  最大值                         Min=g.Min((x)=>x.UnitPrice)    //彙總函式   最小值                     };            //擷取每個分類中產品的總個數,並顯示分類名,總數,總價        var result1 = from p in dc.Products                      join c in dc.Categories on p.CategoryID equals c.CategoryID                      group new { p = p, c = c } by c.CategoryName into g   //new { p = p, c = c }   把需要的對象都添加到匿名對象中                      select new                      {                          CateName=g.Key,                          Count=g.Count(),      //總數                         Sum=g.Sum((x)=>x.p.UnitPrice)        //求總價                                          };        //擷取每個分類中最貴的產品價格和產品名稱        var result2 = from p in dc.Products                      join c in dc.Categories on p.CategoryID equals c.CategoryID                      group new { p = p, c = c } by c.CategoryName into g                      select new                      {                         Max=g.Max((x)=>x.p.UnitPrice),                         CateName=g.Key,                         ProductName=(from u in dc.Products                                          where u.UnitPrice==g.Max((x)=>x.p.UnitPrice)     //條件用來過濾產品名,只需要最貴那個                                          select u.ProductName   //投影一個產品名   根據需要來映射   這裡需要產品名稱就只映射產品名稱                                          ).First()  //返回序列中的第一個元素                      };        GridView1.DataSource = result2;        GridView1.DataBind();

LinQ to SQL 查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.