生活随笔
收集整理的這篇文章主要介紹了
Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個(gè)實(shí)體類,并做插入操作 Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個(gè)實(shí)體類,并做插入操作
1>. 創(chuàng)建一個(gè)控制臺程序
2>. 添加一個(gè) ADO.NET實(shí)體數(shù)據(jù)模型,選擇對應(yīng)的數(shù)據(jù)庫與表(StudentModel.edmx)
3>. 控件臺代碼
static void Main(string[] args){// 創(chuàng)建一個(gè)網(wǎng)關(guān)接口,TestData是數(shù)據(jù)庫名TestDataEntities td = new TestDataEntities();// 創(chuàng)建一個(gè)實(shí)體對象,Student是表映射過來的對象,將其賦值Student st1 = new Student();st1.StudentID = "s4";st1.StudentName = "test1";st1.Age = 20;// 將實(shí)體對象添加到網(wǎng)關(guān)接口,插入操作td.Student.AddObject(st1);// 網(wǎng)關(guān)保存并改變td.SaveChanges();Console.WriteLine("添加成功!");}
如上 StudentModel.edmx 是生成的實(shí)體模型就是 映射表,里面包含對象于表的定義
Entity Framework 增刪改查 操作
1>. 基本同上
2>. 控件臺代碼
class Program{// 創(chuàng)建一個(gè)網(wǎng)關(guān)接口,TestData是數(shù)據(jù)庫名,靜態(tài)方法只能調(diào)用靜態(tài)類static TestDataEntities stuEntities = new TestDataEntities();static void Main(string[] args){// 創(chuàng)建一個(gè)實(shí)體對象,Student是表映射過來的對象,將其賦值Student st1 = new Student();st1.StudentID = "s4";st1.StudentName = "小明";st1.Age = 20;//InsertStu(st1);//DeleteStu("s4");//Student stu2 = FindStudentByID("s4");//stu2.StudentName = "小明";//UpdateStu(stu2);//Console.WriteLine(stu2.StudentName);}// 添加操作public static void InsertStu(Student stu){// 將實(shí)體對象添加到網(wǎng)關(guān)接口,插入操作stuEntities.Student.AddObject(stu);// 網(wǎng)關(guān)保存并改變stuEntities.SaveChanges();Console.WriteLine("添加成功!ID:"+stu.StudentID);}// 刪除操作public static void DeleteStu(string ID){Student stu = FindStudentByID(ID);stuEntities.Student.DeleteObject(stu);stuEntities.SaveChanges();Console.WriteLine("刪除成功!ID:" + stu.StudentID);}// 更新操作public static void UpdateStu(Student stu){// 其中 var 為 IQueryable<Student>類型,繼承IEnumerable<Student>// 繼承IEnumerable的類都能實(shí)現(xiàn) foreachvar student = from s in stuEntities.Studentwhere s.StudentID == stu.StudentIDselect s;// 得到student集合里面的單一實(shí)體var oldStu = student.SingleOrDefault();// 修改對應(yīng)的屬性值oldStu.StudentName = stu.StudentName;oldStu.Age = stu.Age;// 保存修改stuEntities.SaveChanges();Console.WriteLine("更新成功!ID:" + stu.StudentID);}// 更新數(shù)據(jù) 新方法public bool UpdateEntity(MvcHotel.Model.Customer entity){bool result = false;// 添加對象到上下文he.Attach(entity);// 改變新加入對象的狀態(tài),設(shè)置為 已修改he.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);if (he.SaveChanges() > 0){result = true;}return result;}// 查詢操作public static Student FindStudentByID(string ID){// 方式1: Linq to EF// 根據(jù)ID查詢Student,并得到集合中的單一實(shí)體var stu = (from s in stuEntities.Studentwhere s.StudentID == IDselect s).SingleOrDefault();// 方式2: Entity SQLstring sql = "select Value c from TestDataEntities.Student as c ";ObjectQuery<Student> query = stuEntities.CreateQuery<Student>(sql);ObjectResult<Student> results = query.Execute(MergeOption.NoTracking);//return stu;return query.SingleOrDefault();}} EF中操作數(shù)據(jù)庫的網(wǎng)關(guān)
ObjectContext封裝 .NET Framework 和數(shù)據(jù)庫之間的連接。此類用作“創(chuàng)建”、“讀取”、“更新”和“刪除”操作的網(wǎng)關(guān)
ObjectContext 類為主類,用于與作為對象(這些對象為 EDM 中定義的實(shí)體類型的實(shí)例)的數(shù)據(jù)進(jìn)行交互
ObjectContext 類的實(shí)例封裝以下內(nèi)容:
a> 到數(shù)據(jù)庫的連接,以 EntityConnection 對象的形式封裝。
b> 描述該模型的元數(shù)據(jù),以 MetadataWorkspace 對象的形式封裝
c> 用于管理緩存中持久保存的對象的 ObjectStateManager 對象
posted on
2017-05-08 12:20?趙大海 閱讀(
...) 評論() 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/zhaodahai/p/6824501.html
總結(jié)
以上是生活随笔為你收集整理的Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。