ASP.NET Core MVC 和 Visual Studio入门(五) 使用 SQL Server LocalDB
2017-06-22 17:57
1076 查看
ASP.NET
Core MVC 和 Visual Studio入门(五) 使用 SQL Server LocalDB
Rick AndersonMvcMovieContext对象操纵连接到数据库并映射电影对象到数据库记录的任务,数据库上下文被注册到Startup.cs文件中的ConfigureServices 方法内的 Dependency Injection(依赖项注入器) 容器中。
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddDbContext<MvcMovieContext>(options =>
ASP.NET Core
配置 系统读该连接字符串,对于本地开发,它从appsettings.json文件中得到连接字符串。
JavaScript
"ConnectionStrings": { "MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-20613a4b-deb5-4145-b6cc-a5fd19afda13;Trusted_Connection=True;MultipleActiveResultSets=true" }
当部署该应用到一个测试或产品服务器时,可使用环境变量或其它方法设置连接字符串到一个真实的SQL服务器。更多见配置。
1.SQL Server Express LocalDB
LocalDB是专用于程序开发的SQL Server Express 数据库引擎的轻量级版本,LocalDB可在需要时随时启动并运行于用户模式,所以不存在复杂的配置。缺省地,LocalDB数据库在C:/Users/<user再选目录内创建“*。mdf”文件。
从View菜单,打开SQL Server Object Explorer (SSOX).
右击该 Movie 表再选 View Designer
注意紧邻于ID的钥匙图标,缺省地,EF将生成一个命名为ID的作为主键的属性。
右击Movie 表 再选 View Data
2.数据库播种
在Models文件夹创建一个为SeedData的类,用下面的内容代替产生了的代码。
using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using System; using System.Linq; namespace MvcMovie.Models { public static class SeedData { public static void Initialize(IServiceProvider serviceProvider) { using (var context = new MvcMovieContext( serviceProvider.GetRequiredService<DbContextOptions<MvcMovieContext>>())) { // Look for any movies. if (context.Movie.Any()) { return; // DB has been seeded } context.Movie.AddRange( new Movie { Title = "When Harry Met Sally", ReleaseDate = DateTime.Parse("1989-1-11"), Genre = "Romantic Comedy", Price = 7.99M }, new Movie { Title = "Ghostbusters ", ReleaseDate = DateTime.Parse("1984-3-13"), Genre = "Comedy", Price = 8.99M }, new Movie { Title = "Ghostbusters 2", ReleaseDate = DateTime.Parse("1986-2-23"), Genre = "Comedy", Price = 9.99M }, new Movie { Title = "Rio Bravo", ReleaseDate = DateTime.Parse("1959-4-15"), Genre = "Western", Price = 3.99M } ); context.SaveChanges(); } } } }
注意如果在数据库中已经有了电影记录,则播种初始化器返回。
if (context.Movie.Any()) { return; // DB has been seeded. }
在Startup.cs文件的Config方法的最后添加播种初始化器:
app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); SeedData.Initialize(app.ApplicationServices); } } }
测试应用
在数据库中删除所有记录,这可通过浏览器中的delete链接或SQL Server 对象浏览器(SSOX)来实现。
强制应用初始化(调用Startup类中的该方法)使播种方法运行。要强制初始化,必须中止并重启IIS Express,可通过下列方法中的任一种实现:
在通知区右击IIS Express系统托盘图标并点击Exit或Stop Site.
如果正用非调试模式运行VS,按F5以运行于调试模式。
如果正运行VS于调试模式,停止调试器并按F5.
应用显示播种了的数据
原文
相关文章推荐
- asp.net VS2013自带的数据库SQL Server Express LocalDB使用介绍
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- 使用 Visual Studio 的 ASP.NET Core MVC 和 Entity Framework Core 入门 (1 of 10)
- ASP.NET MVC 5 学习教程:使用 SQL Server LocalDB
- [转]ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 学习教程:使用 SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 学习教程:使用 SQL Server LocalDB
- ASP.NET Core 中文文档 第二章 指南(4.5)使用 SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- SQL Server LocalDB 在 ASP.NET中的应用
- 结合使用 ASP.NET 和 SQL Server Express Edition
- IIS安全工具UrlScan介绍 ASP.NET 两种超强SQL 注入免费解决方案( 基于IIS,使用免费工具) 批改或隐藏IIS7.5的Server头信息 移除X-Powered-By,MVC,ASP.NET_SessionId 的 HTTP头或者cookie名称
- 【译】ASP.NET MVC 5 教程 - 5:使用 SQL 服务器 LocalDB 创建连接字符串
- APS.NET_MVC5学习笔记-创建连接字符串(Connection String)并使用SQL Server LocalDB