ASP.NET MVC——CodeFirst开发模式
entity framework框架提供了几种开发模式,比如database first,model first,code first。database first是最老也是应用得最广泛的一种设计方式。database first这种方式的设计高度依赖于数据库中表的结构,根据表及表间的关系来创建模型。如果后期需求有所变更或者功能有很大变化的话,需要涉及到更改数据库所付出的代价将会很大,因为之前编写好的代码将不再适用于新的表,我们必需重构以更改代码中的逻辑以适应更改之后的表。model first是创建ado.net实体对象以及它们之间的关系,然后再指定到数据库的映射。这个实体对象即为model。
我们今天要讲的是code first(代码先行)。它思想就是先定义模型中的类,再通过这些类生成数据库。这种开发模式适合于全新的项目,它使得我们可以以代码为核心进行设计而不是先构造数据库,步骤如下。
1.接下来我就以一个简单的例子来介绍这种开发模式。我们的需求是两个表,博客表和评论表。一个博客对应多个评论,一个评论对应一个博客。这是一对多关系。我们先新建一个asp.net mvc项目,并用nuget安装entityframework。然后建立两个model。
public class blog { [key] [databasegenerated(databasegeneratedoption.identity)] public guid id { get; set; } public string title { get; set; } public string author { get; set; } public datetime time { get; set; } public string summary { get; set; } public string content { get; set; } public virtual icollection<comment> comments { get; set; } = new list<comment>(); }
public class comment { [key] [databasegenerated(databasegeneratedoption.identity)] public guid id { get; set; } public string visitorname { get; set; } public string email { get; set; } public datetime time { get; set; } public string content { get; set; } [foreignkey("blog")] public guid blogid { get; set; } public virtual blog blog { get; set; } }
2.接下来我们创建数据上下文。新建一个文件夹叫context,并在其中新建类,代码如下:
public class testdbcontext: dbcontext { public testdbcontext() : base("name=constring") { } #region 数据库相关表 新增表需要在此添加对应关系 public virtual dbset<blog> blog{ get; set; } public virtual dbset<comment>comment{ get; set; }
#endregion }
3.接着我们在web.config中来配置数据库,在web.config中的<configuration>节点中加入如下配置(注意:section节点和connectionstrings的位置)
<configsections> <!-- for more information on entity framework configuration, visit http://go.microsoft.com/fwlink/?linkid=237468 --> <section name="entityframework" type="system.data.entity.internal.configfile.entityframeworksection, entityframework, version=6.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089" requirepermission="false"/> </configsections> <connectionstrings> <add name="constring" connectionstring="server=.;database=test;uid=sa;pwd=123456" providername="system.data.sqlclient" /> </connectionstrings>
4.添加完成之后,进行数据迁移
打开package manager console(程序包管理控制台)
输入命令 1、 enable-migrations 回车。2、add-migration 回车,输入方便认识的名字 。3、下面我们就执行正式迁移,输入 update-database 回车,搞定。
上一篇: EF--封装三层架构IOC
下一篇: 学习强国app学习组织名称怎么更改?
推荐阅读
-
ASP.NET MVC5网站开发之实现数据存储层功能(三)
-
ASP.NET MVC5网站开发之网站设置(九)
-
ASP.NET MVC5网站开发之展示层架构(五)
-
ASP.NET MVC5网站开发之总体概述(一)
-
解析ASP.NET Mvc开发之删除修改数据
-
ASP.NET MVC5网站开发之登录、验证和注销管理员篇1(六)
-
ASP.NET MVC5网站开发之用户角色的后台管理1(七)
-
ASP.NET MVC5网站开发之用户资料的修改和删除3(七)
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
ASP.NET MVC5网站开发之添加删除重置密码修改密码列表浏览管理员篇2(六)