LINQ to SQL 小結

1. VS(visual studio)裏獲取LINQ to SQL模板

  工具---獲取工具和功能---單個組件---LINQ to SQL Class

2. 創建一個項目(以控制檯程序爲例)

3.添加linq to sql classes

 

 

4. 打開server explorer,建立數據庫連接,並將表拖到dbml文件中,結果如下圖 

5. 在dbml文件的空白處,右鍵選擇屬性,填寫Context namespace 和 Entity namespace。

 到此,項目和數據庫的連接已經建立完成,下面是如何使用的部分。

6. 查

一般查詢:

    using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                var result = from a in dc.Country_Lists
                             where a.IntVersionID >= 4
                             select a;

                foreach (var st in result)
                {
                    Console.WriteLine("country name:" + st.Str40CountryName);
                    Console.WriteLine("RegionID:" + st.IntRegionID);
                    Console.WriteLine("CountryID:" + st.IntCountryID);
                    Console.WriteLine("VersionID:" + st.IntVersionID);
                }

            }

SELECT TOP 5:

       using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                //SELECT TOP 5
                var result = (from a in dc.Study_Infos
                              orderby a.ID descending
                              select a).Skip(0).Take(5);

                foreach (var item in result)
                {
                    Console.WriteLine("StudyNo: " + item.StudyNo);
                    Console.WriteLine("Sponsor:" + item.Sponsor);

                }

            }

分頁查詢:

     using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                //SELECT TOP 5
                var result = (from a in dc.Study_Infos
                              orderby a.ID descending
                              select a).Skip(1*5).Take(5);

                foreach (var item in result)
                {
                    Console.WriteLine("StudyNo: " + item.StudyNo);
                    Console.WriteLine("Sponsor:" + item.Sponsor);

                }

            }

7 增

//insert 
using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                TableTest item = new TableTest {ID=0, Name = "Jamie1" };
                //dc 上下文環境, TableTests 創建linq to sql 時由數據庫拖拽過來的表格
                dc.TableTests.InsertOnSubmit(item);

                dc.SubmitChanges();
            }

 

批量添加

 //Insert
            using (LinqDemo1DataContext db = new LinqDemo1DataContext())
            {

                var list = new List<TableTest> {
                    new TableTest {ID=3, Name = "Jamie2" },
                    new TableTest {ID=5, Name = "Jamie5" },
                    new TableTest {ID=8, Name = "Jamie8" }
                };

                //dc 上下文環境, TableTests 創建linq to sql 時由數據庫拖拽過來的表格

                db.TableTests.InsertAllOnSubmit(list);
                db.SubmitChanges();

            }

 

8 改

 // Update
            using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                var list = dc.TableTests.Where(c => c.Name =="Jamie1");
                TableTest item = dc.TableTests.Where(c => c.Name == "Jamie1").First();
                item.Name = "GAO JAMIE";
               
                dc.SubmitChanges();
            }

9 刪

 // Delete
            using (LinqDemo1DataContext dc = new LinqDemo1DataContext())
            {
                var list = dc.TableTests.Where(c => c.Name == "Jamie1");
                 dc.TableTests.DeleteAllOnSubmit(list);
                //TableTest country = dc.TableTests.Where(c => c.Name == "Jamie1").First();
                //dc.TableTests.DeleteOnSubmit(country);
                dc.SubmitChanges();
            }

10. Cannot perform Create, Update or Delete operations on Table(Employee) because it has no primary key

http://www.a2zmenu.com/Blogs/LINQ/Cannot%20perform%20Create,%20Update%20or%20Delete%20operations%20on%20Table(Employee)%20because%20it%20has%20no%20primary%20key.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章