ASP.NET Core MVC 和 Visual Studio入門(五) 使用 SQL Server LocalDB
ASP.NET Core MVC 和 Visual Studio入門(五) 使用 SQL Server LocalDB
MvcMovieContext物件操縱連線到資料庫並對映電影物件到資料庫記錄的任務,資料庫上下文被註冊到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 Core 2.2 MVC入門到基本使用系列 (五)ASP.NETMVC
- ASP.NET Core 入門教程 5、ASP.NET Core MVC 檢視傳值入門ASP.NETMVC
- ASP.NET Core MVC 入門到精通 - 3. 使用MediatRASP.NETMVC
- ASP.NET Core 入門教程 2、使用ASP.NET Core MVC框架構建Web應用ASP.NETMVC框架架構Web
- 【視訊】ASP.NET Core MVC 2.* 入門ASP.NETMVC
- SQL Server 2012免費版LocalDB簡介ISSQLServer
- dbForge Studio for SQL Server入門教程:如何建立和編輯查詢SQLServer
- DbForge Studio for SQL Server入門教程:如何編輯資料SQLServer
- 使用Visual Studio 2019將ASP.NET Core釋出為linux-arm64程式ASP.NETLinux
- ASP.Net Core 3.1 使用gRPC入門指南ASP.NETRPC
- dbForge Studio for SQL Server入門教程:如何連線到資料庫SQLServer資料庫
- DbForge Studio for SQL Server入門教程:如何從不同模式傳輸表SQLServer模式
- 在ASP.NET Core MVC 2.2 中使用AutoMapperASP.NETMVCAPP
- DbForge Studio for SQL Server入門教程:在表編輯器中建立表SQLServer
- asp.net core mvc 分頁ASP.NETMVC
- ASP.NET Core Blazor 3:使用 Blazor Server (2)ASP.NETBlazorServer
- 在Visual Studio 中使用git——檔案管理-中(五)Git
- SQL Server Management Studio (SSMS)SQLServerSSM
- 從 MVC 到使用 ASP.NET Core 6.0 的最小 APIMVCASP.NETAPI
- 使用Visual Studio 2022 建立lib和dll並使用
- Blazor入門:ASP.NET Core Razor 元件BlazorASP.NET元件
- Asp.Net Core Grpc 入門實踐ASP.NETRPC
- ASP.NET Core MVC 之模型(Model)ASP.NETMVC模型
- ASP.NET Core MVC 之路由(Routing)ASP.NETMVC路由
- DbForge Studio for SQL Server入門教程:在查詢生成器中建立查詢SQLServer
- 使用Visual Studio分析dump
- Asp.Net Core入門之配置檔案ASP.NET
- Redis 入門與 ASP.NET Core 快取RedisASP.NET快取
- ASP.NET CORE 入門教程(附原始碼)ASP.NET原始碼
- ASP.NET Core MVC 之佈局(Layout)ASP.NETMVC
- ASP.NET Core MVC 之檢視(Views)ASP.NETMVCView
- 資料庫運維初入門-SQL Server入門到跑路002-初使用資料庫運維SQLServer
- ASP.NET Core3.1使用Identity Server4建立Authorization Server-2ASP.NETIDEServer
- ASP.NET Core3.1使用Identity Server4建立Authorization Server-1ASP.NETIDEServer
- ASP.NET MVC下使用AngularJs語言(五):ng-selectedASP.NETMVCAngularJS
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入門ASP.NETIDEServer
- Visual Studio Code 使用指南
- Visual Studio Code 使用筆記筆記
- Visual Studio 使用GIT詳解Git