ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法

 

一、手动配置连接数据库(CF)

以前ADO各种conn加cmd就完成连接查询了,EF呢~得配置。配置有两种方法,一种是全自动,一种是全手动。

EF有一个基本概念,CODE FIRST和DB FIRST(??不知道写对没)以及MODEL FIRST,我认为区别就是:你完全建好了数据库就DF,你还没想好数据库的设计就CF,CF意思就是你不用设计数据库了,你想使用的变量等等在Models里建好实体类,然后数据库创建Table和字段都是配置后端操作过程中完成了,相当。。。省心。。吧。。。

先记录一下全手动配置

新建一个空白的MVC工程:命名为test

1、引用EntityFramework

去NuGet搜索下载EntityFramework,引用里就有这两个东西了

 

 

 

2、建实体,Models

Model名可以简单理解为数据库对应的表名,Model里的内容就是表的各个字段。在Models下建一个Testable.cs

 

 

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第1张图片

 

3、建数据上下文

简单的理解,EF上下文更像是一个连接的实体类似于把ADO里的连接数据库的语句封装起来,在Models下建Dbcontest.cs

此处一定要using System.Data.Entity 因为 Dbcontext是来自于EF的。

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第2张图片

 

4、配置连接信息

上面的DBcontest是从配置信息里先读取数据库连接字符串,因此需要配置根目录下的Web.config

 

 

5、生成控制器

可以自动生成也可以手动写,这里介绍自动的方法

 

在Controllers上右键—添加—控制器

 

接着选我们刚刚建好的模型类和数据上下文

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第3张图片

 

等待几秒钟......就自动生成了对应的Controller和View

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第4张图片

 

 

6、RouteConfig配置测试

 

7、生成的页面能看到下面这个就算是成功了~

可以看到Testtables这个表里什么都没有

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第5张图片

点Creat New

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第6张图片

在文本框输入测试内容后返回列表就看到数据表的内容了~

 

这时候再去数据库看一下,已经创建好了表,刚才新建的内容也应进入了数据表

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第7张图片

 

 

再看一下字段的数据类型(属性)全是自动生成的

 

 

*****如果对字段的属性有特别需要,比如指定主键和不同的数据类型,就需要先在实体类里用[]来进行注释

并且需要

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第8张图片

 

如果有数据库了,数据库有表有数据了,那EF要如何配置呢,那么请看第二种方式。

二、手动配置的DF连接的方式

接下来说手动配置以DF为主的模式,要用EF去操作已存在的数据库,就得得使用这种方式,其过程和CF差不多只是略有一些不一样。

 

 

1、先在数据库建一个名Testtable2的表

 

 

2、在Models里建一个实体类 Testtable2

注意[Tabel"Testtable2"]的意思就是指定数据库的Testtable2这张表。

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第9张图片

 

 

3.在数据库上下文的里加入以下函数

此字符串的含义是启动连接时屏蔽效验,CF模式启动时会效验__MigrationHistory数据表,想用DF模式效验就会出错,摘抄自链接

 

4.自动生成Controller和View

 

5.运行

就能读出来testtable2的表了

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第10张图片

6.报错

在我操作的配置过的EF里遇到过两种错误:

①这种错误就是先模拟运行一下,再进行控制器的自动生成就行了。

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第11张图片

②是报错

The model backing the 'XXX' context has changed since the database was created. Consider using Code First Migrations to update the database(http://go.microsoft.com/fwlink/?LinkId=238269).

意思其实就是EF在CF模式下需要迁移数据库,用 (二).3的步骤可以解决,如果还有问题可以参考这篇文章

 

三、自动配置EF方法

自动配置就一个字,快。

下面上步骤

 

1、新建实体数据模型

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第12张图片

 

 

选EF设计器

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第13张图片

 

 

点新建连接

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第14张图片

 

 

填自己的服务器信息

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第15张图片

 

 

红圈处可更改自己的数据上下文实体

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第16张图片

 

 

 

选需要的表

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第17张图片

 

 

 

然后就……全自动生成了我们手动生成的所有的实体模型

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第18张图片ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第19张图片

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第20张图片

 

 

2、接着再自动生成Controller和View

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第21张图片

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第22张图片

 

3、测试

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法_第23张图片

 

没错,自动配置就是这么的快,但从原理上讲手动设置更直观的明白每个地方的构造是干什么的,也可以进行灵活的设置及更改,方便最终的发布部署。

 

 

 

你可能感兴趣的:(ASP.NET,MVC)