[置顶] 【EF系列】DBFirst数据库优先

时间:2021-02-03 13:07:35

一、前言

      在前文中我们介绍了ORM,EF映射。其中EF映射有三种实现方法,这里小编就从最简单的给大家讲起——DSFirst。

二、内容介绍

      DBFirst,从字面理解就是“数据库优先”。要先有数据库再有实体模型,所以前提是已经创建好了数据库。
      具体看下面的实例.

三、实战演练

首先打开VS2012 ,选择控制台程序:

[置顶]        【EF系列】DBFirst数据库优先

                                                    图一 选择控制台程序

[置顶]        【EF系列】DBFirst数据库优先

                                                    图二 建立好的界面

然后在项目中添加ADO实体模型:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图三 选择ADO实体模型

选择ADO实体模型:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图四 选择ADO实体模型

选择模型类型:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图四 选择模型类型

如果是第一次新建EF模型,请看下面的步骤:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图五 选择数据库

这里点击更改可以选择要使用的数据库的类型,默认是SQL Server数据库。
[置顶]        【EF系列】DBFirst数据库优先

                                                    图六 选择数据库

[置顶]        【EF系列】DBFirst数据库优先

                                                    图七 选择数据库

下面的步骤应该都比较熟悉:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图八 选择数据库

[置顶]        【EF系列】DBFirst数据库优先

                                                    图九  选择数据库

这里我们选择5.0:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图十 选择实体模式5.0

选择要实体化的表,点击确定,完成:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图十一 选择表

[置顶]        【EF系列】DBFirst数据库优先

                                                    图十二 完成效果图

这样算是完成了我们任务的80%,接下来就是我们要对数据库进行增删改查了:
[置顶]        【EF系列】DBFirst数据库优先

                                                    图十三 方法介绍
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using System.Data;

namespace EFDBFirst
{
class Program
{
static void Main(string[] args)
{
#region 更新操作
//1.声明上下文
LoginEntities dbContext = new LoginEntities();
//2.对实体操作
//2.1 实例化要操作的实体,并赋值
USERS user = new USERS();
//更改属性, 必须给所有属性赋值
user.ID = 1;
user.Password = "2";
user.UserName = "Ares";
user.Email="18333602097@163.com";
//2.2 实体附加到上下文,并进行操作。
//实体附加到上下文
dbContext.USERS.Attach(user);
dbContext.Entry(user).State = EntityState.Modified; //实体已修改。
//dbContext.Entry(user).State = EntityState.Deleted; //标记实体以进行删除。
//dbContext.Entry(user).State = EntityState.Unchanged; //实体处于原始的、未经修改的状态。
//dbContext.Entry(user).State = EntityState.Added; //添加操作
//dbContext.Entry(user).State = EntityState.Detached; //实体未附加,也未处于被跟踪状态。

//3.调用SaveChange保存
dbContext.SaveChanges();
#endregion
}
}
}

[置顶]        【EF系列】DBFirst数据库优先
[置顶]        【EF系列】DBFirst数据库优先

      从上面的图看出来,通过EF就轻松的修改了我们的数据库中的数据。是不是很简单。

四、小结

      每一次锻炼都是提升,有了数据库,就有了实体,还可以通过EF映射来操纵数据库,对其进行增删改查。真是一个很不错的体验。这个技术方便了不少。下一篇博客将介绍ModelFirst