EF

                                            EF

      EF是实体框架,英文就是Entity Framework。它是ORM的思想的一种产物。表和表实体的映射。

      那么EF比原生的Ado.net有哪些优势呢,小结如下:

      1.它是微软自己的产品,跟VS集成度肯定是很好的。能极大的提高开发人员的效率,可能我们用ado.net写三天的代码,而用EF半天就可以了。开发的代码中都是强类型的。写代码的效率非常高,比如说分页,用linq写,skip一下,take一下也就可以了。

      2.EF提供的模型设计器非常强大,可以做到Model先行,是带来了数据库的一个革命。

      3.EF能做到的是仅仅改变配置就可以切换数据库。

      另外,它有一个缺陷就是性能相对差,在生成SQL脚本阶段,在复杂的时候生成的SQL脚本效率不是很高。

 

     以下附一个用EF的增删改的代码。

     大概也就五步,第一步就是创建一个EF实体模型,你选择数据库先行(DBFirst),或者模型先行(ModelFirst)。第二步就是创建一个数据库的上下文,由它来操作,其上知天文,下知地理。其在EF4.0的时候对象是objectContext,现在的是dbContext,其本质也是对objectContext进行了一个封装。第三步就是创建实体,如果是增加就把增加的值要写上,如果是删除就一定要写上删除的数据的id,不然就会不知道删除哪条数据的,如果是修改就写上修改后的一些数据。第四步,也就是告诉数据库要做一个什么样子的操作,是添加,修改还是删除,这是一个枚举,如下的增加的也就是第10行的代码也可以写成db.Entry(info).State = EntityState.Add;第五步,也就是告诉数据库将实体映射到数据库中,也就是调用一下上下文的一个SaveChanges()方法。

 1 //思路五步:先创建一个EF实体模型,
 2                         //再创建一个访问数据库的上下文,
 3                         //做添加操作,
 4                         //把其添加到数据库中去,
 5                          //保存一下。
 6             //DPSLEntities db=new DPSLEntities();//这是第二步。创建数据库上下文对象。
 7             //Info info=new Info();  //第三步,创建实体。为之赋值。
 8             //info.name = "dpsl";
 9             //info.sex = "男";
10             //db.Info.Add(info);    //第四步,告诉数据库我要做一个添加的操作。
11             //db.SaveChanges();     //第五步,告诉ORM给我映射到数据库中去。
12             //Console.WriteLine("搞定!成功将实体添加到数据库中!!");
13             //Console.ReadKey();
用EF增加的代码
1  //DPSLEntities db = new DPSLEntities();              //创建数据库上下文
2             //Info info = new Info();                                      //创建实体,为id赋值,好让知道删除哪个。
3             //info.id = 2;
4             //db.Info.Attach(info);                                         //将实体附加到上下文中进行管理。
5             //db.Entry(info).State=EntityState.Deleted;         //注意写法,后面的为枚举。
6             //db.SaveChanges();                                             //给我映射到数据库里去。
7             //Console.WriteLine("成功将实体从数据库中删除");
8             //Console.ReadKey();
用EF删除的代码
1   DPSLEntities db = new DPSLEntities();
2             Info info = new Info();
3             info.id = 1;
4             info.name = "修改后的dpsl";
5             info.sex = "";
6             db.Entry(info).State = EntityState.Modified;
7             db.SaveChanges();
8             Console.WriteLine("成功修改了数据!!");
9             Console.ReadKey();
用EF修改的代码

 

posted @ 2013-11-09 17:11  公子若不胖天下谁胖  阅读(1014)  评论(1编辑  收藏  举报