zoukankan      html  css  js  c++  java
  • Entity Framework快速入门笔记第2篇—增删改查

      前言:在上一篇博客中我们大致介绍了一下需要的准备工作,也就是一些自动属性,隐式类型,匿名类等,下面我们通过建立一个简单的例子来学习EF框架,直接进入主题吧:

    1. 第一步:创建一个控制台应用程序,起名为EFDemo

    2. 第二步:创建一个实体模型

      (1)在EFDemo项目上面右击选择添加—新建项—在已安装的选项中选择数据—ADO.NET实体对象模型,如图所示:

      

    3. 与数据库进行连接

      (1)    单击第二步建立的实体数据模型的添加按钮,然后我们选择从数据库生成,如图所示:

      

      (2)    单击下一步,然后如果我们以前没有操作的话在这里将是为空的,然后我们单击新建连接,建立一个数据库的链接,然后选择“是,在连接字符串中包含敏感数据”,如图所示:

      (3)    单击下一步,选择我们要生成实体框架对应的表,试图或者存储过程和函数,因为这里我只使用到了表,所以选择表的选项就行了,如图所示:

      

      (4)    单击完成,这数据库自动帮我们生成了实体对象和实体类,然后可以看到我的解决方案EFDemo下面生成的东西和VS2010不相同,当然大致的使用还是没有变化的,只是有一些细节变了

      

    4. 第四步,EF的第一个使用-增加

      (1)    添加如下代码:

      

      (2)    数据库中添加了一条数据,如图所示:

      

      (3)    然后我们可以打开SQL Server2012数据库,单击工具—>SQL Server Profiler,打开工具,然后我们运行代码,跟踪可以看一下给我们生成的代码是什么,如图所示:

      (4)    还可以使用初始化器来实现数据的添加信息,效果和上面的一摸一样,代码如图所示:

       

    5. 第五步,EF的第一个使用-修改  

      (1)    添加如下代码,如图所示

      

      (2)    数据库中修改语句如图所示

      

      (3)    在SQL Server Profiler中查看生成的SQL语句,如图所示:

    6. 第五步,EF的第一个使用-删除

      (1)    添加如下代码,如图所示

      

      (2) 数据库中修改语句如图所示

      

      (3) 在SQL Server Profiler中查看生成的SQL语句,如图所示:

    7. 第五步,EF的第一个使用-查询

      (1)    实现查询的第一种方法 foreach循环

      1)实现代码如图所示:

      

      2)结果就不用展示了,在我这里已经实现了

      3)查看SQL Server Profiler中生成的SQL语句,如图所示:

      

    (2) 实现查询的第二种方法  Linq和List集合

      1)实现代码如图所示:

      

      2)查看SQL Server Profiler中生成的SQL语句,如图所示:

      

    (3) 实现查询的第三种方法 Linq

      1) 实现代码如图所示:   

      

      2)查看SQL Server Profiler中生成的SQL语句和上面的第二个区块中的执行语句一样,这里就不累赘了。

      (4) 实现一个分页的查询

         1) 实现代码如图所示:

      

      2) 查看SQL Server Profiler中生成的SQL语句和上面的第二个区块中的执行语句一样   

      

      (5) 实现查询的第五种方法 lambda

           1) 实现代码如图所示:

      

      2) 生成的SQL脚本在数据库Profiler里面查看和下面写的基本是一样的。所以这里就不贴出来了,大家可以试一下

      3)lambda表达式查询部分列

         var dataLambda = bjh.HKSJ_USERS.Where(c => c.ID > 100)

                    .Select(c => new { id = c.ID, Name = c.LoginName });

         foreach (var item in dataLambda)

         {

             Console.WriteLine(item.id + "," + item.Name);

        }

    8. EF的执行效率

      (1) 在我们.NET领域,会有很多人认为EF的效率不是很高,那是为什么呢?因为我们看到最后EF还是生成SQL语句来执行的,所以EF本身性能损失也就是对实体集合的修改,然后根据edmx的定义最终生成SQL语句这段时间浪费了CPU而已,而且EF还会自动帮助我们对SQL进行优化,所以EF的选择还是挺不错的,当然不能再非常大的项目使用,那样才会表现出性能的问题。

     

    完全是为了学习技术,欢迎大家多多交流!!谢谢拉!

  • 相关阅读:
    flask 模板block super()的讲解
    flask-include标签使用标签
    spring boot 使用属性加载顺序
    mongodb中的_id的ObjectId的生成规则
    由整数对(父节点和子节点的关系)组成的二叉树的高度问题
    Akka in action (第一章 介绍Akka)
    数据结构学习(一)数组
    spray-json
    JMS API(二)
    JSM 学习(一)
  • 原文地址:https://www.cnblogs.com/hanyinglong/p/2773733.html
Copyright © 2011-2022 走看看