问题的产生

   最近在看Adam Freeman的“Pro ASP.NET MVC5”,于是在工作机上面搭建了相应的运行环境,但是在自己的机器上面只有代码,没有数据库。记得在code first中可以新建数据库并且填充数据,这样就生成数据库可以方便测试。

准备工作

数据库上下文

 public class EFDbContext: DbContext
{
public DbSet<Product> Products { get; set; }
}

web.config 需要指定数据库的链接字符串

 <connectionStrings>
<add name="EFDbContext" connectionString="Data Source=.\mysql;Initial Catalog=SportsStore;Integrated Security=True;User ID=sa;Password=123123" providerName="System.Data.SqlClient" />
</connectionStrings>

Nuget 控制台

enable-migrations命令将在项目中创建一个迁移文件夹。同时文件夹中包含一个Configuration.cs文件,你可以编辑该文件来配置迁移。
 using System.Collections.Generic;
using SportsStore.Domain.Entities; namespace SportsStore.Domain.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq; internal sealed class Configuration : DbMigrationsConfiguration<SportsStore.Domain.Concrete.EFDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
} protected override void Seed(SportsStore.Domain.Concrete.EFDbContext context)
{
var products = new List<Product>
{
new Product
{
Name = "Kayak",
Description = "A boat for one person",
Category = "Watersports",
Price = 275m
}, new Product
{
Name = "Lifejacket",
Description = "protective and fashinonable",
Category = "Watersports",
Price = 48.95m
}, new Product {Name = "Soccer Ball", Description = "FIFA", Category = "Soccer", Price = 19.50m}, new Product
{
Name = "Corner Flags",
Description = "Give u playing field",
Category = "Soccer",
Price = 34.95m
}, new Product
{
Name = "Stadium",
Description = "Flat-Packed,35,000-seat stadium",
Category = "Soccer",
Price = 79500.00m
}, new Product
{
Name = "Thinking Cap",
Description = "Improve ur brain efficiency by 75%",
Category = "Chess",
Price = 16.00m
}, new Product
{
Name = "Unsteady Chair",
Description = "Secretly give your opponent a disadvantage",
Category = "Chess",
Price = 29.95m
}, new Product {Name = "Human Chess Board", Description = "A fun game", Category = "Chess", Price = 75.00m}, new Product
{
Name = "Bling-Bing King",
Description = "Gold-plated,diamond-studded King",
Category = "Chess",
Price = 1200.00m
}
};
products.ForEach(m => context.Products.Add(m));
base.Seed(context); }
}
}

add-migration InitialCreate 
当您执行add-migration命令时,迁移将生成代码用来创建数据库。
update-database
update-database命令运行Up方法来创建数据库,然后运行Seed方法来填充数据库。 运行成功,数据库就会有对应的数据插入。

参考文献:

1.Getting Started with Entity Framework 6 Code First using MVC 5 https://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application2.Pro ASP.NET MVC5. 作者 Adam Freeman

ASP.net MVC5 Code First填充测试数据到数据库的更多相关文章

  1. 用ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统

    用http://ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统 背景:前段时间,给一家公司做外包(就是图标是朵菊花那家).为了尽快实现交付,网上四处寻找适合中小型企 ...

  2. 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移

    在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...

  3. Asp.Net MVC5入门学习系列⑦

    原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...

  4. Asp.Net MVC5入门学习系列⑥

    原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...

  5. asp.net mvc5 DataBase First下model校验问题(MetadataType使用)

    最近学习asp.net mvc5,使用   asp.net mvc5+EF6+AutoFac做个小Demo,其中是先设计的数据库表,就直接选择了EF的DataBase First(三种开发模式分别是c ...

  6. ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)

    https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...

  7. ASP.NET MVC5学习笔记01

    由于之前在项目中也使用MVC进行开发,但是具体是那个版本就不是很清楚了,但是我觉得大体的思想是相同的,只是版本高的在版本低的基础上增加了一些更加方便操作的东西.下面是我学习ASP.NET MVC5高级 ...

  8. ASP.NET MVC5 网站开发实践 - 概述

    前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...

  9. [Asp.net MVC]Asp.net MVC5系列——添加数据

    目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...

随机推荐

  1. linux添加新磁盘和创建分区

    Linux磁盘概念及其管理工具fdisk:http://www.linuxidc.com/Linux/2016-08/134664.htm 一. 进入linux虚拟机 右键 open in termi ...

  2. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库03 —— 安装HAWQ 2.3.0.0

    一. HAWQ2.3.0环境准备[全部主机节点]: 1, vim /etc/sysctl.conf,编辑如下内容: kernel.shmmax= kernel.shmmni= kernel.shmal ...

  3. LeetCode - 804. Unique Morse Code Words

    International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...

  4. 排序算法--插入排序(Insertion Sort)_C#程序实现

    排序算法--插入排序(Insertion Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来 ...

  5. hdu 2098 分拆素数和(素数)

    分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. mybatis14--注解的配置

    去掉对应的mapper映射文件 在dao文件中增加注解 public interface StudentDao { /** * 新增学生信息 */ @Insert(value="insert ...

  7. 21、bootstrap框架

    http://www.bootcss.com/ Bootstrap 插件==全部依赖 jQuery== 请注意,Bootstrap 的所有 JavaScript 插件都依赖 jQuery,因此 jQu ...

  8. 判断网页请求与FTP请求

    实例说明 在访问Internet网络时,经常涉及到很多访问协议,其中最明显.最常用的就是访问页面的http协议.访问ftp服务器的FTP协议等.

  9. java学习之路--面试之多线程基础

    Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是 ...

  10. ArcGIS AddIN Sample学习笔记

    1.AddInEditorExtension 功能描述:编辑器扩展,实现在编辑要素,对编辑事件的监听,及对新创建的要素的处理 核心代码: void Events_OnStartEditing() { ...