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毫秒,只有区区九行数据(当然这里不知道是否加载了其它关联表数据)

 

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

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毫秒,在控制台等待的时候,可以真实的感受到这种延迟,啥也别说了,看结果吧。

 

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

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

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

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

 

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

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

 

posted @ 2009-10-24 12:41  Ron.Liang  阅读(3588)  评论(15编辑  收藏  举报