我是一个菜鸟,我只是在努力,2021正视自己,面对2021!

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的选择还是挺不错的,当然不能再非常大的项目使用,那样才会表现出性能的问题。

 

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

posted @ 2012-11-16 18:04  Kencery  阅读(7816)  评论(24编辑  收藏  举报
友情链接:初心商城