Entity Framework 小刀初试

  这Entity Framework风风火火的炒了好长时间了,再加上前两天无意中看到园子里的一篇文章(一年前)说:微软将废弃两个框架,同时在MSDN的Entity Framework帮助中发现微软使用LINQ TO Entity 帮助现有的LINQ TO SQL 开发人员转移到Entity Framework,终于在写了一堆的LINQ TO SQL后,再也忍不住Entity Framework的诱惑,小试了一把,说实话,感觉不怎么样,此次只是小试,参考的是Entity Framework learning guide,以下是我简单测试后的结果,话不用多说,况且我现在也不是很了解Entity Framework,Entity Framework learning guide也才看了两章,大家手里有砖头、鸡蛋什么的,扔吧,别纂手里浪费了。

 

1、准备工作

1.1、环境:windows server 2003,visual studio 2008 sp1,sql 2005 express

1.2、数据库是根据 Entity Framework learning guide中提示下载的NorthWind数据库

 

2、测试代码,极度简单

2.1、

 1              var db  =   new  NorthwindEntities();
 2               // 记录开始时间
 3              DateTime starttime  =  DateTime.Now;
 4              var employees  =  from emp  in  db.Employees select emp;
 5               foreach  (var e  in  employees)
 6              {
 7                  Console.WriteLine( " FirstName:{0} " , e.FirstName);
 8              }
 9               // 记录结束时间
10              DateTime endtime  =  DateTime.Now;
11              TimeSpan ts  =  endtime.Subtract(starttime).Duration();
12              Console.ForegroundColor  =  ConsoleColor.Red;
13              Console.WriteLine( " 用时:{0} " , ts.TotalMilliseconds);
14              Console.ForegroundColor  =  ConsoleColor.Gray;

 

 2.2、注意上面这段代码,只是简单的创建了一个Entity Framework对象,并调用了其Employees对象并获取数据库中EMployees table中的所有数据(其实只有几行),迭代其并输出一个雇员的FirstJName。

2.3、增加了一个DateTime对象来记录从获取Employee对象到输出的时间,这就是全部代码

2.4、输出结果,第一次加载数据居然使用了968.75毫秒,只有区区九行数据(当然这里不知道是否加载了其它关联表数据)

Entity Framework 小刀初试_第1张图片 

2.5再次加载结果,用时15.625毫秒和0毫秒,0毫秒的出现是因为从上次加载后无间隔加载,15.625毫秒是因为自上次加载后间隔3秒钟后加载。

Entity Framework 小刀初试_第2张图片

3、换段代码再试试

3.1、这次我从创建Entity Framework对象开始计时,请注意红色的DateTime对象的记录起始位置。

 1      // 记录开始时间
 2              DateTime starttime  =  DateTime.Now;
 3             var db  =   new  NorthwindEntities();           
 4             var employees  =  from emp  in  db.Employees select emp;
 5              foreach  (var e  in  employees)
 6              {
 7                Console.WriteLine("FirstName:{0}", e.FirstName);
 8            }

 9              // 记录结束时间
10             DateTime endtime  =  DateTime.Now;
11             TimeSpan ts  =  endtime.Subtract(starttime).Duration();
12             Console.ForegroundColor  =  ConsoleColor.Red;
13             Console.WriteLine( " 用时:{0} " , ts.TotalMilliseconds);
14             Console.ForegroundColor  =  ConsoleColor.Gray;

 

3.2、本次测试结果的第一次加载,比上一次测试又多花了100毫秒,在控制台等待的时候,可以真实的感受到这种延迟,啥也别说了,看结果吧。

 Entity Framework 小刀初试_第3张图片

 3.2、再次加载的结果和第一次测试代码中的一样,在这里我就不再贴图了。

4、结果如何,我不敢妄自下结论,还是留给大家吧

4.1、因为我也是刚刚开始了解Entity Framework,而且 Entity Framework learning guide也才看了两章,加上本人英文欠佳,理解上可能又会有很多差异。

--------------------------------------------------------------------------------------------------------------------------------------------------------

 

欢迎转载,但请注明出处--lsotcode博客(http://www.cnblogs.com/viter/)!

说得不对的地方,欢迎拍砖! 

 

你可能感兴趣的:(Entity Framework 小刀初试)