前景:要操做的數據表必須添加主鍵(方式:進入數據庫-->數據表名-->設計-->列名右鍵-->設置主鍵)數據庫
可在服務器資源管理器中查看是否設置了主鍵(主鍵會有一把鑰匙的圖樣)服務器
1)、項目名右鍵-->新建項-->ADO.NET數據模型ide
選擇第一個「來自數據庫的EF設計器」就行spa
若是是第一次鏈接,點擊新建鏈接完成操做便可,下面選擇 「是,在鏈接字符串中包含敏感數據」設計
選擇須要添加的數據庫對象,點擊完成。3d
2)、操做數據表的增刪改查code
2.1)、聲明一個 EF的上下文.(這個上下文指向數據庫)對象
這個對象能夠聲明成全局的上下文blog
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);
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 }