现在并没有添加Ef的服务。
6.依照MVC5中的项目目录结构创建如Controllers 和Views和Models文件如下图所示,新建一个HomeController 和Index Action和Index的视图,用于测试。
7.用过dotnet的方式运行(dotnet 相当于之前的dnx) 看到这个结果说明mvc6项目搭建完成
8.开始Ef的操作。在Models中新建一个实体Article简单的给他三个字段
9.在Models中新建一个SMContext(ef上下文对象)代码如下:
11.为了初始化数据库,在此新建一个SampleData类,在项目启动的时候,调用此类,进行数据库的初始化。代码如下:
这个地方比较灵活,我们初始化创建数据库的时候可以插入一条数据,也可以不插入。我在这个地方插入了一条文章的数据。当然系统中有用户,插入管理员是比较适当的操作的。
12.再次修改Startup文件 调用SampleData 在加载项目的时候创建数据库 并初始化。代码如下:
13.再次启动项目,我的数据已经创建成功,并且插入一条数据。如图:
14.数据库迁移 。当我们增加一个User实体,并且修改了Article的实体,现在要进行数据库的迁移,不是简单的把数据库删除重新建立。要保证原有的数据不变,修改数据库结构。
增加的User实体如下:
修改后的Article实体如下,加了个Label的字段
在SMContext文件中,增加User的DbConetxt;
如下代码:
15.在vs的PM命令输入 Add-Migration newBook
成功后会在项目中产生一个Migrations文件夹。里面有个快照文件和一个迁移的文件。在此不扩展了。
在执行命令: Update-Database newBook 发现报错了
问题解决,不用SampleData来初始化数据库,用 Add-Migration init Update-Database init 来初始化数据库。