Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
admin
2023-05-25 03:41:11
0

Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

1>. 创建一个控制台程序
2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(StudentModel.edmx)
3>. 控件台代码

Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

        static void Main(string[] args)
        {            // 创建一个网关接口,TestData是数据库名
            TestDataEntities td = new TestDataEntities();            
            // 创建一个实体对象,Student是表映射过来的对象,将其赋值
            Student st1 = new Student();
            st1.StudentID = "s4";
            st1.StudentName = "test1";
            st1.Age = 20;            // 将实体对象添加到网关接口,插入操作
            td.Student.AddObject(st1);            // 网关保存并改变
            td.SaveChanges();

            Console.WriteLine("添加成功!");
        }

Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

如上 StudentModel.edmx 是生成的实体模型就是 映射表,里面包含对象于表的定义

Entity Framework 增删改查 操作


1>. 基本同上
2>. 控件台代码

Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    class Program
    {        // 创建一个网关接口,TestData是数据库名,静态方法只能调用静态类
        static TestDataEntities stuEntities = new TestDataEntities();        static void Main(string[] args)
        {            // 创建一个实体对象,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)
        {            // 将实体对象添加到网关接口,插入操作
            stuEntities.Student.AddObject(stu);            // 网关保存并改变
            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类型,继承IEnumerable            // 继承IEnumerable的类都能实现 foreach
            var student = from s in stuEntities.Student                          where s.StudentID == stu.StudentID                          select s;            // 得到student集合里面的单一实体
            var oldStu = student.SingleOrDefault();            // 修改对应的属性值
            oldStu.StudentName = stu.StudentName;
            oldStu.Age = stu.Age;            
            // 保存修改
            stuEntities.SaveChanges();
            Console.WriteLine("更新成功!ID:" + stu.StudentID);
        }    // 更新数据 新方法
        public bool UpdateEntity(MvcHotel.Model.Customer entity)
        {            bool result = false;            // 添加对象到上下文
            he.Attach(entity);            // 改变新加入对象的状态,设置为 已修改
            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            // 根据ID查询Student,并得到集合中的单一实体
            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 query = stuEntities.CreateQuery(sql);
            ObjectResult results = query.Execute(MergeOption.NoTracking);            //return stu;
            return query.SingleOrDefault();
        }
    }

Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

EF中操作数据库的网关

ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关
ObjectContext 类为主类,用于与作为对象(这些对象为 EDM 中定义的实体类型的实例)的数据进行交互
ObjectContext 类的实例封装以下内容:
a> 到数据库的连接,以 EntityConnection 对象的形式封装。
b> 描述该模型的元数据,以 MetadataWorkspace 对象的形式封装
c> 用于管理缓存中持久保存的对象的 ObjectStateManager 对象


相关内容

热门资讯

私下谈判态度软化?伊朗考虑让欧... 据凤凰卫视援引彭博社报道,多名知情外交官透露,伊朗正在考虑允许欧洲国家参与清除霍尔木兹海峡水雷,作为...
风声|丈夫和小三冷冻胚胎、妻子... 作者丨赵宏 陈碧法学教授上海婚外冷冻胚胎案,近日持续发酵。朱女士与丈夫结婚21年,其间因支持丈夫创业...
夯实人工智能发展的制度保障 新一轮智能化浪潮席卷全球,人工智能正在全方位重构人类经济社会发展模式,给人类文明进步带来深远影响。在...
近代化学之父罗伯特·波义耳:从... 近代化学之父罗伯特·波义耳:从紫色罗兰到科学奠基的传奇一生 在科学璀璨的星空中,十七世纪的英国化学家...
空中客车启动新一代可折叠机翼测... 【CNMO科技消息】8月4日,据外媒报道,欧洲飞机制造商空中客车公司启动了一项新测试项目,在一架A3...
台湾一富商被杀害,34岁前员工... 【环球网报道】据台湾中时新闻网8月5日报道,台湾屏东县枋寮乡56岁贵金属公司黄姓董事长7月在自家豪宅...
12岁摩洛哥男孩哭求留在西班牙... 在西班牙北非飞地休达,一名12岁摩洛哥孤身男孩在被士兵押送遣返时,当场哭喊恳求不要把自己送回国。行至...
美国巴西外交冲突升级了! 这两个大国,真撕破脸了。一个是美国,世界老大;另一个是巴西,拉美No.1。最近的事情,说起来,其实挺...
电脑屏幕怎么截屏(电脑屏幕要怎... 电脑屏幕截屏的方法有很多,可分全屏和任意内容,以系统自带和借助QQ为例,介绍具体操作方法: ...
电脑任务管理器怎么打开 很多人都不知道电脑的.任务管理器应该怎么打开,下面小编为大家带来了电脑任务管理器的打开方法,欢迎大家...