EF入门

简介:     一,对比Linq to SQL              最近学了两个具有ORM思想的东西,一个是Linq to SQL ,另一个是EF。。。                                                        ...


    一,对比Linq to SQL


             最近学了两个具有ORM思想的东西,一个是Linq to SQL ,另一个是EF。。。

 

         

          

           

           

         学完之后总是从使用上感觉它们是一样的,后来自己查了查,统计了个表格:



                  

           

     

                各有优劣吧~~欢迎前来补充~~~~



     二,EF实现简单增删改查


              

  static void Main(string[] args)
        {
           




            #region 增加单个实体
                using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口
                {
                    var mystudent = new T_StuInfo
                    {

                        StuNum = "01",
                        StuCardNum = "01",
                        StuName = "杰伦哥哥"

                    };  //定义一个要增加的对象

                    dbContext.T_StuInfo.Add(mystudent);//增加
                    int result = dbContext.SaveChanges();//真正写入数据库
                    Console.WriteLine(result);  //打印出1

                }
            #endregion






            #region 查询单个实体

                using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口
                {
                    var mystudent = dbContext.T_StuInfo.Find("01");//使用主键查找上下文跟踪的实体


                    Console.WriteLine(mystudent.StuName);  //打印出学生姓名:杰伦哥哥


                } 

            #endregion





            #region 修改单个实体

                    using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口
                    {
                        var mystudent = (from stu in dbContext.T_StuInfo where stu.StuName == "周杰伦" select stu).Single();
                        mystudent.StuName = "亲耐滴杰伦哥哥";
                        int result=dbContext.SaveChanges();
                        Console.WriteLine(result);  //返回1


                    } 

            #endregion





            #region  删除单个实体——使用Remorve方法

                using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口
                {
                    var mystudent = (from stu in dbContext.T_StuInfo where stu.StuName == "令狐冲" select stu).SingleOrDefault();

                    dbContext.T_StuInfo.Remove(mystudent);  //将实体标记为deleted
                    int result = dbContext.SaveChanges(); //将更改保存到数据库
                    Console.WriteLine(result);  //返回1


                } 


            #endregion



            //--------删除方法这样写可能有点儿效率问题:
            //要删除一个实体,只要知道它的id就ok了,但是上面
            //的方法却要先加载这个实体到内存,这是个多余的步骤,下面我们使用attach方法

            #region 删除单个实体——attach方法

                using (var dbContext = new SecondChargeEntities())//先创建访问数据库的入口
                {
                    var mystudent =new  T_StuInfo 
                    {
                        StuNum ="01"
                    };

                    dbContext.T_StuInfo.Attach(mystudent);//将实体以unchanged状态附加到上下文中

                    dbContext.T_StuInfo.Remove(mystudent );  //将实体标记为deleted
                   int result= dbContext.SaveChanges();  //提交到时数据库



                    Console.WriteLine(result );  //打印出1


                } 

            #endregion





            #region 删除单个实体ExecuteSQLCommand方法
                using (var dbcontext=new SecondChargeEntities())
                {
                    dbcontext.Database.ExecuteSqlCommand("delete from T_StuInfo where StuNum='3'");
                }

            #endregion






        }




            如上DEMO,我们还是主要使用DBContext这个类的变种来实现对数据库的操作,这个东西从功能上有点儿像SQLHelper,但是从原理上看,它们还是不一样滴。

           这个上下文类利用底层的ADO.NET生成SQL代码实现对数据库的增删改查,相比以前的SQL语句,这种方法更易于写和调试,而且非常简单;并且在EF中,也可以使用linq的语句简化查询。



       








 

目录
相关文章
|
9月前
|
SQL 存储 开发框架
EF框架如何搭建
EF框架如何搭建
|
9月前
|
SQL 存储 XML
|
SQL 存储 数据处理
5.1EF Core原理
对普通集合使用where等方法查询出来的返回值为IEnumerable类型 但是对DbSet使用用where等方法出查询出来的返回值为IQueryable类型
|
开发框架 算法 .NET
4.1EF Core
EF Core是微软官方的ORM框架,ORM即对象关系映射,也就是我们可以直接操作C#中的对象就可以完成数据库的操作。
|
关系型数据库 MySQL Windows
EF入门
EF入门
152 0
|
数据库
EF-ModelFirst实现过程
EF-ModelFirst实现过程
EF-ModelFirst实现过程
|
存储 SQL XML
Entity Framework学习笔记——EF简介(一篇文章告诉你什么是EF)
Entity Framework是以ADO.NET为基础,面向数据的“实体框架”。以下简称EF。 它利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。
Entity Framework学习笔记——EF简介(一篇文章告诉你什么是EF)
|
存储 SQL XML
EF Core-2
上篇 概念性讲述CRQS(https://www.cnblogs.com/ccaa/p/12545582.html)
108 0
EF Core-2
|
存储 XML 缓存
EF Core-1
前几天了解到EF Core的开发模式:DB First(数据库优先),Model First(模式优先),Code First(代码优先)。
122 0
EF Core-1