你的位置:首页 > ASP.net教程

[ASP.net教程]Entity Framework基础—第二篇


实体框架(Entity Framework) 简称EF,属于数据持久(持久保存)架里面的一种,其他的还有NHibernate,ibaties,Dapper、PetaPOCO...等,都是基于ORM思想。

首先介绍下O/R Mapping(ORM)

1.什么是ORM?ORM指的是面向对象的对象模型和关系数据库的数据结构之间的相互转化,可以理解为把表实体和表相互转化(在任何平台都适用,如php,java等)。

传统ADO.net操作数据库:

ado

 

基于ORM思想操作数据库:

ORM

接下来我们就一步步创建项目:

这里我是用的vs2012 默认装的是EF5.0,如果你机子没有博客园搜下如何安装,这里就不介绍了,

首先我们新建一个项目,在项目中添加新建项如下图:

创建EF1

点击添加下图:

创建EF2

我们这选择从数据库生成:

创建EF3

这里我们点击新建连接:

image

选择完毕之后点确定:

image

这里一定要设置"是",你可以点下"否"看看实体链接字符串跟"是"有什么区别,点击下一步:

 image

点击完成,就OK了,根据数据库生成的实体如下图:

image

看下解决方案管理器中都生成了什么文件:

创建EF6

那么我们打开DataModel.Context.cs看下里面的内容:

创建EF7

我们简单的写个CRUD:

1.添加

//1.声明一个EF的上下文DemoTestEntities dbContext= new DemoTestEntities();//2.声明一个实体UserInfo userInfo = new UserInfo();userInfo.Age = 18;//3.告诉EF对上面的实体进行添加操作aadbContext.UserInfo.Add(userInfo);//4.告诉上下文把实体的变化保存到数据库里面去dbContext.SaveChanges();

2.查询

static void Main(string[] args)    {      //查询操作      DemoTestEntities dbContext = new DemoTestEntities();      List<UserInfo> list = dbContext.UserInfo.Where(u => u.Name == "小贱").ToList();      list.ForEach(u => Console.WriteLine(u.ToString()));      Console.ReadKey();    } public partial class UserInfo{    public override string ToString()//重写tostring()    {      return this.Age + "," + this.Name;    }}

3.修改

static void Main(string[] args)    {      //修改操作      DemoTestEntities dbContext = new DemoTestEntities();      UserInfo userInfo = new UserInfo();      userInfo.Name = "小贱";      userInfo.Age = 20;      userInfo.UserId = 1;//修改删除的时候必须指定id      //告诉上下文对此实体做修改操作      dbContext.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Modified;      //修改数据库某一列中的数据      //dbContext.Entry<UserInfo>(userInfo).Property<string>(u => u.Name).IsModified = true;      //修改数据库某一列中的数据第二种写法      //dbContext.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Unchanged;      //dbContext.Entry<UserInfo>(userInfo).Property("Name").IsModified = true;       dbContext.SaveChanges();    }

4.删除

static void Main(string[] args)    {      //删除操作      DemoTestEntities dbContext = new DemoTestEntities();      UserInfo userInfo = new UserInfo();      userInfo.Name = "小贱";      userInfo.Age = 20;      userInfo.UserId = 1;//修改删除的时候必须指定id      //告诉上下文对此实体做删除操作      dbContext.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Deleted;       dbContext.SaveChanges();    }

View Code