前景:要操作的數據表必須添加主鍵(方式:進入資料庫-->數據表名-->設計-->列名右鍵-->設置主鍵) 可在伺服器資源管理器中查看是否設置了主鍵(主鍵會有一把鑰匙的圖樣) 1)、項目名右鍵-->新建項-->ADO.NET數據模型 選擇第一個“來自資料庫的EF設計器”就行 如果是第一次連接,點擊新建 ...
前景:要操作的數據表必須添加主鍵(方式:進入資料庫-->數據表名-->設計-->列名右鍵-->設置主鍵)
可在伺服器資源管理器中查看是否設置了主鍵(主鍵會有一把鑰匙的圖樣)
1)、項目名右鍵-->新建項-->ADO.NET數據模型
選擇第一個“來自資料庫的EF設計器”就行
如果是第一次連接,點擊新建連接完成操作即可,下麵選擇 “是,在連接字元串中包含敏感數據”
選擇需要添加的資料庫對象,點擊完成。
2)、操作數據表的增刪改查
2.1)、聲明一個 EF的上下文.(這個上下文指向資料庫)
這個對象可以聲明成全局的上下文
StudentEntities dbContext = new StudentEntities();
2.2)、增
1 //聲明一個實體,並賦值
2 Students stu = new Students(); 3 stu.StudentName = "李四"; 4 stu.StudentSex = "男"; 5 stu.StudentAge = 19; 6 stu.StudentProvince = "上海"; 7 stu.StudentPhone = "17468523001"; 8 9 //寫法一: 10 //dbContext.Students.Add(stu); 11 //寫法二: 12 dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Added; 13 14 //告訴上下文把實體的變化保存到資料庫裡面去,返回受影響行數 15 int i = dbContext.SaveChanges();
//三元表達式 16 string str = i == 1 ? "添加成功" : "添加失敗"; 17 Console.WriteLine(str);
2.3)、刪
1 Students stu = new Students(); 2 stu.StudentNO = 1833200159; 3 4 dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Deleted; 5 int i = dbContext.SaveChanges(); 6 string str = i == 1 ? "刪除成功" : "刪除失敗"; 7 Console.WriteLine(str);
2.4)、修改整條數據
1 Students stu = new Students(); 2 stu.StudentNO = 1833200160; 3 stu.StudentName = "趙六"; 4 stu.StudentSex = "男"; 5 stu.StudentAge = 20; 6 stu.StudentProvince = "廣州"; 7 stu.StudentPhone = "18654257894"; 8 9 dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Modified; 10 int i = dbContext.SaveChanges(); 11 string str = i == 1 ? "修改成功" : "修改失敗"; 12 Console.WriteLine(str);
2.4.2)、修改單個屬性
1 Students stu = new Students(); 2 stu.StudentNO = 1833200160; 3 stu.StudentName = "露絲"; 4 stu.StudentAge = 0; 5 stu.StudentSex = "女"; 6 stu.StudentProvince = ""; 7 stu.StudentPhone = ""; 8 9 //將當前實例附加到上下文來處理 10 dbContext.Students.Attach(stu); 11 12 //寫法一: 13 //這裡修改了名字和性別,因為其他的屬性欄位是不可空的所以為了通過驗證必須 14 //賦值(賦上了任意的值,但是我們並沒有保存這些更改) 15 //dbContext.Entry<Students>(stu).Property("StudentName").IsModified = true; 16 //dbContext.Entry<Students>(stu).Property("StudentSex").IsModified = true; 17 18 //寫法二:Lambda表達式 19 dbContext.Entry<Students>(stu).Property<string>(s => s.StudentName).IsModified = true; 20 dbContext.Entry<Students>(stu).Property<string>(s => s.StudentSex).IsModified = true; 21 22 int i = dbContext.SaveChanges(); 23 string str = i == 1 ? "修改成功" : "修改失敗"; 24 Console.WriteLine(str);View Code
2.5)、查詢整張數據表
1 foreach (var item in dbContext.Students) 2 { 3 //列印整張表的學號和姓名 4 Console.WriteLine("學號: " + item.StudentNO + " 姓名: " + item.StudentName); 5 }
2.5.2)、Linp表達式按條件查詢數據
1 //查詢整張表女生的信息 2 var temp = from s in dbContext.Students 3 where s.StudentSex == "女" 4 select s; 5 foreach (var item in temp) 6 { 7 //列印女生的信息 8 Console.WriteLine(item.StudentName); 9 }