. 創(chuàng)建一個控制臺程序2>. 添加一個 ADO.NET實(shí)體數(shù)據(jù)模型,選擇對應(yīng)的數(shù)據(jù)庫與表(StudentMode..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

發(fā)布時間:2020-06-16 01:29:08 來源:網(wǎng)絡(luò) 閱讀:321 作者:鄒君安 欄目:數(shù)據(jù)庫

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

1>. 創(chuàng)建一個控制臺程序
2>. 添加一個 ADO.NET實(shí)體數(shù)據(jù)模型,選擇對應(yīng)的數(shù)據(jù)庫與表(StudentModel.edmx)
3>. 控件臺代碼

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

        static void Main(string[] args)
        {            // 創(chuàng)建一個網(wǎng)關(guān)接口,TestData是數(shù)據(jù)庫名
            TestDataEntities td = new TestDataEntities();            
            // 創(chuàng)建一個實(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("添加成功!");
        }

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

如上 StudentModel.edmx 是生成的實(shí)體模型就是 映射表,里面包含對象于表的定義

Entity Framework 增刪改查 操作


1>. 基本同上
2>. 控件臺代碼

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

    class Program
    {        // 創(chuàng)建一個網(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)建一個實(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) foreach
            var student = from s in stuEntities.Student                          where s.StudentID == stu.StudentID                          select 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.Student                       where s.StudentID == ID                       select s).SingleOrDefault();        // 方式2: Entity SQL
            string 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();
        }
    }

Entity Framework 的小實(shí)例:在項(xiàng)目中添加一個實(shí)體類,并做插入操作

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 對象


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI