ASP.net MVC5 Code First填充测试数据到数据库
问题的产生
最近在看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填充测试数据到数据库的更多相关文章
- 用ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统
用http://ASP.NET MVC5 +SQLSERVER2014搭建多层架构的数据库管理系统 背景:前段时间,给一家公司做外包(就是图标是朵菊花那家).为了尽快实现交付,网上四处寻找适合中小型企 ...
- 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移
在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...
- Asp.Net MVC5入门学习系列⑦
原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...
- Asp.Net MVC5入门学习系列⑥
原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...
- asp.net mvc5 DataBase First下model校验问题(MetadataType使用)
最近学习asp.net mvc5,使用 asp.net mvc5+EF6+AutoFac做个小Demo,其中是先设计的数据库表,就直接选择了EF的DataBase First(三种开发模式分别是c ...
- ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)
https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...
- ASP.NET MVC5学习笔记01
由于之前在项目中也使用MVC进行开发,但是具体是那个版本就不是很清楚了,但是我觉得大体的思想是相同的,只是版本高的在版本低的基础上增加了一些更加方便操作的东西.下面是我学习ASP.NET MVC5高级 ...
- ASP.NET MVC5 网站开发实践 - 概述
前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...
- [Asp.net MVC]Asp.net MVC5系列——添加数据
目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...
随机推荐
- linux添加新磁盘和创建分区
Linux磁盘概念及其管理工具fdisk:http://www.linuxidc.com/Linux/2016-08/134664.htm 一. 进入linux虚拟机 右键 open in termi ...
- 基于【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 ...
- LeetCode - 804. Unique Morse Code Words
International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...
- 排序算法--插入排序(Insertion Sort)_C#程序实现
排序算法--插入排序(Insertion Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来 ...
- hdu 2098 分拆素数和(素数)
分拆素数和 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- mybatis14--注解的配置
去掉对应的mapper映射文件 在dao文件中增加注解 public interface StudentDao { /** * 新增学生信息 */ @Insert(value="insert ...
- 21、bootstrap框架
http://www.bootcss.com/ Bootstrap 插件==全部依赖 jQuery== 请注意,Bootstrap 的所有 JavaScript 插件都依赖 jQuery,因此 jQu ...
- 判断网页请求与FTP请求
实例说明 在访问Internet网络时,经常涉及到很多访问协议,其中最明显.最常用的就是访问页面的http协议.访问ftp服务器的FTP协议等.
- java学习之路--面试之多线程基础
Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是 ...
- ArcGIS AddIN Sample学习笔记
1.AddInEditorExtension 功能描述:编辑器扩展,实现在编辑要素,对编辑事件的监听,及对新创建的要素的处理 核心代码: void Events_OnStartEditing() { ...