Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jegyzet
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Figyelmeztetés
A ASP.NET Core ezen verziója már nem támogatott. További információ: .NET és .NET Core támogatási szabályzat. Az aktuális kiadásról a cikk .NET 9-es verziójábantalál információt.
Által Rick Anderson és Jon P Smith.
Bevezetés
Az oktatóanyag-sorozat ezen része az SQL-adatbázis ASP.NET Core MVC-alkalmazásban való használatával foglalkozik.
A következő témákkal fog megismerkedni:
- Regisztrálja és konfigurálja az Entity Framework Core adatbáziskörnyezetét a ASP.NET Core MVC-alkalmazáshoz.
- Helyi fejlesztés során dolgozzon adatbázis-kapcsolati sztringekkel.
- Az SQL Server Express LocalDB használatával fejlesztheti és megvizsgálhatja az adatbázist és az adatokat az SQL Server Object Explorerrel.
- Az adatbázis üzembe helyezése kezdeti mintaadatokkal.
Előfeltétel
Ez az oktatóanyag az előző lépésben beállított adatbázist használja: 4. rész, modell hozzáadása egy ASP.NET Core MVC-alkalmazáshoz.
Az adatbázis-környezet használata
A MvcMovieContext objektum kezeli az adatbázishoz való csatlakozás és Movie objektumok adatbázisrekordokhoz való leképezésének feladatát. Az adatbázis-környezet regisztrálva van a fájl Program.cs tárolójában:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext") ?? throw new InvalidOperationException("Connection string 'MvcMovieContext' not found.")));
A ASP.NET Core Configuration rendszer beolvassa a ConnectionString kulcsot. Helyi fejlesztés esetén lekéri a kapcsolati karakterláncot a appsettings.json fájlból:
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-4ebefa10-de29-4dea-b2ad-8a8dc6bcf374;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Éles alkalmazások esetén a legbiztonságosabb elérhető hitelesítési folyamatot kell használni. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
SQL Server Express LocalDB (helyi adatbáziskezelő szoftver)
LocalDB:
- Az SQL Server Express Database Engine egyszerűsített verziója, amely alapértelmezés szerint telepítve van a Visual Studióval.
- Igény szerint elindul egy kapcsolati karakterlánc használatával.
- A programfejlesztésre van megcélzva. Felhasználói módban fut, így nincs összetett konfiguráció.
- Alapértelmezés szerint .mdf fájlokat hoz létre a C:/Users/{user} könyvtárban.
Az adatbázis vizsgálata
A Nézet menüben nyissa meg SQL Server Object Explorer (SSOX).
Kattintson a jobb gombbal a Movie táblára (dbo.Movie) > Nézettervező
Figyelje meg a IDmelletti kulcsikont. Alapértelmezés szerint az EF egy ID nevű tulajdonságot készít az elsődleges kulcsból.
Kattintson a jobb gombbal a Movie táblára > Adatok megtekintése
Az adatbázis üzembe helyezése
Hozzon létre egy SeedData nevű új osztályt a Modellek mappában. Cserélje le a létrehozott kódot a következőre:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
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-2-12"),
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();
}
}
}
Ha az adatbázisban vannak filmek, a kezdőérték inicializáló visszatér, és nem adódik hozzá új film.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Add meg a mag inicializálót
Cserélje le a Program.cs tartalmát a következő kódra. Az új kód ki van emelve.
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
using MvcMovie.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext") ?? throw new InvalidOperationException("Connection string 'MvcMovieContext' not found.")));
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
SeedData.Initialize(services);
}
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapStaticAssets();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Törölje az adatbázis összes rekordjait. Ezt a böngészőben vagy az SSOX-ban található törlési hivatkozásokkal teheti meg.
Tesztelje az alkalmazást. Kényszerítse az alkalmazást az inicializálásra, és hívja meg a kódot a Program.cs fájlban, így a kezdő metódus fut. Az inicializálás kényszerítéséhez zárja be a Visual Studio által megnyitott parancssori ablakot, és indítsa újra a Ctrl+F5 billentyűkombinációt.
Az alkalmazás megjeleníti a beszúrt adatokat.
Bevezetés
Az oktatóanyag-sorozat ezen része az SQL-adatbázis ASP.NET Core MVC-alkalmazásban való használatával foglalkozik.
A következő témákkal fog megismerkedni:
- Regisztrálja és konfigurálja az Entity Framework Core adatbáziskörnyezetét a ASP.NET Core MVC-alkalmazáshoz.
- Adatbázis-kapcsolati sztringekkel való munka helyi fejlesztés során.
- Az SQL Server Express LocalDB használatával fejlesztheti és megvizsgálhatja az adatbázist és az adatokat az SQL Server Object Explorerrel.
- Az adatbázis betöltése kezdeti mintaadatokkal.
Előfeltétel
Ez az oktatóanyag az előző lépésben beállított adatbázist használja: 4. rész, modell hozzáadása egy ASP.NET Core MVC-alkalmazáshoz.
Az adatbázis-környezet használata
A MvcMovieContext objektum kezeli az adatbázishoz való csatlakozás és Movie objektumok adatbázisrekordokhoz való leképezésének feladatát. Az adatbázis-környezet regisztrálva van a fájl Program.cs tárolójában:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
A ASP.NET Core Configuration rendszer beolvassa a ConnectionString kulcsot. Helyi fejlesztés esetén lekéri a kapcsolati karakterláncot a appsettings.json fájlból:
"ConnectionStrings": {
"MvcMovieContext": "Data Source=MvcMovieContext-ea7a4069-f366-4742-bd1c-3f753a804ce1.db"
}
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Éles alkalmazások esetén a legbiztonságosabb elérhető hitelesítési folyamatot kell használni. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
SQL Server Express LocalDB (helyi adatbáziskezelő szoftver)
LocalDB:
- Az SQL Server Express Database Engine egyszerűsített verziója, amely alapértelmezés szerint telepítve van a Visual Studióval.
- Igény szerint elindul egy kapcsolati karakterlánc használatával.
- A programfejlesztésre van megcélzva. Felhasználói módban fut, így nincs összetett konfiguráció.
- Alapértelmezés szerint .mdf fájlokat hoz létre a C:/Users/{user} könyvtárban.
Az adatbázis vizsgálata
A Nézet menüben nyissa meg SQL Server Object Explorer (SSOX).
Kattintson a jobb gombbal a Movie táblára (dbo.Movie) > Nézettervező
Figyelje meg a IDmelletti kulcsikont. Alapértelmezés szerint az EF egy ID nevű tulajdonságot készít az elsődleges kulcsból.
Kattintson a jobb gombbal a Movie táblára > Adatok megtekintése
Az adatbázis üzembe helyezése
Hozzon létre egy SeedData nevű új osztályt a Modellek mappában. Cserélje le a létrehozott kódot a következőre:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
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-2-12"),
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();
}
}
}
Ha az adatbázisban vannak filmek, a kezdőérték inicializáló visszatér, és nem adódik hozzá új film.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Add meg a mag inicializálót
Cserélje le a Program.cs tartalmát a következő kódra. Az új kód ki van emelve.
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
using MvcMovie.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
SeedData.Initialize(services);
}
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Törölje az adatbázis összes rekordjait. Ezt a böngészőben vagy az SSOX-ban található törlési hivatkozásokkal teheti meg.
Tesztelje az alkalmazást. Kényszerítse az alkalmazást az inicializálásra, és hívja meg a kódot a Program.cs fájlban, így a kezdő metódus fut. Az inicializálás kényszerítéséhez zárja be a Visual Studio által megnyitott parancssori ablakot, és indítsa újra a Ctrl+F5 billentyűkombinációt.
Az alkalmazás megjeleníti a beszúrt adatokat.
Bevezetés
Az oktatóanyag-sorozat ezen része az SQL-adatbázis ASP.NET Core MVC-alkalmazásban való használatával foglalkozik.
A következő témákkal fog megismerkedni:
- Regisztrálja és konfigurálja az Entity Framework Core adatbáziskörnyezetét a ASP.NET Core MVC-alkalmazáshoz.
- Dolgozzon helyi fejlesztés során használt adatbázis-kapcsolati sztringekkel.
- Az SQL Server Express LocalDB használatával fejlesztheti és megvizsgálhatja az adatbázist és az adatokat az SQL Server Object Explorerrel.
- Az adatbázis kezdeti mintaadatokkal való feltöltése.
Előfeltétel
Ez az oktatóanyag az előző lépésben beállított adatbázist használja: 4. rész, modell hozzáadása egy ASP.NET Core MVC-alkalmazáshoz.
Az adatbázis-környezet használata
A MvcMovieContext objektum kezeli az adatbázishoz való csatlakozás és Movie objektumok adatbázisrekordokhoz való leképezésének feladatát. Az adatbázis-környezet regisztrálva van a fájl Program.cs tárolójában:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
A ASP.NET Core Configuration rendszer beolvassa a ConnectionString kulcsot. Helyi fejlesztés esetén lekéri a kapcsolati karakterláncot a appsettings.json fájlból:
"ConnectionStrings": {
"MvcMovieContext": "Data Source=MvcMovieContext-ea7a4069-f366-4742-bd1c-3f753a804ce1.db"
}
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Éles alkalmazások esetén a legbiztonságosabb elérhető hitelesítési folyamatot kell használni. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
SQL Server Express LocalDB (helyi adatbáziskezelő szoftver)
LocalDB:
- Az SQL Server Express Database Engine egyszerűsített verziója, amely alapértelmezés szerint telepítve van a Visual Studióval.
- Igény szerint elindul egy kapcsolati karakterlánc használatával.
- A programfejlesztésre van megcélzva. Felhasználói módban fut, így nincs összetett konfiguráció.
- Alapértelmezés szerint .mdf fájlokat hoz létre a C:/Users/{user} könyvtárban.
Az adatbázis vizsgálata
A Nézet menüben nyissa meg SQL Server Object Explorer (SSOX).
Kattintson a jobb gombbal a Movie táblára (dbo.Movie) > Nézettervező
Figyelje meg a IDmelletti kulcsikont. Alapértelmezés szerint az EF egy ID nevű tulajdonságot készít az elsődleges kulcsból.
Kattintson a jobb gombbal a Movie táblára > Adatok megtekintése
Az adatbázis üzembe helyezése
Hozzon létre egy SeedData nevű új osztályt a Modellek mappában. Cserélje le a létrehozott kódot a következőre:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
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-2-12"),
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();
}
}
}
Ha az adatbázisban vannak filmek, a kezdőérték inicializáló visszatér, és nem adódik hozzá új film.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
<a name=kivonat_"si">
Add meg a mag inicializálót
Cserélje le a Program.cs tartalmát a következő kódra. Az új kód ki van emelve.
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
using MvcMovie.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
SeedData.Initialize(services);
}
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Törölje az adatbázis összes rekordjait. Ezt a böngészőben vagy az SSOX-ban található törlési hivatkozásokkal teheti meg.
Tesztelje az alkalmazást. Kényszerítse az alkalmazást az inicializálásra, és hívja meg a kódot a Program.cs fájlban, így a kezdő metódus fut. Az inicializálás kényszerítéséhez zárja be a Visual Studio által megnyitott parancssori ablakot, és indítsa újra a Ctrl+F5 billentyűkombinációt.
Az alkalmazás megjeleníti a beszúrt adatokat.
Bevezetés
Az oktatóanyag-sorozat ezen része az SQL-adatbázis ASP.NET Core MVC-alkalmazásban való használatával foglalkozik.
A következő témákkal fog megismerkedni:
- Regisztrálja és konfigurálja az Entity Framework Core adatbáziskörnyezetét a ASP.NET Core MVC-alkalmazáshoz.
- Adatbázis-kapcsolati sztringek helyi fejlesztéshez való használatával.
- Az SQL Server Express LocalDB használatával fejlesztheti és megvizsgálhatja az adatbázist és az adatokat az SQL Server Object Explorerrel.
- Az adatbázis üzembe helyezése kezdeti mintaadatokkal.
Előfeltétel
Ez az oktatóanyag az előző lépésben beállított adatbázist használja: 4. rész, modell hozzáadása egy ASP.NET Core MVC-alkalmazáshoz.
Az adatbázis-környezet használata
A MvcMovieContext objektum kezeli az adatbázishoz való csatlakozás és Movie objektumok adatbázisrekordokhoz való leképezésének feladatát. Az adatbázis-környezet regisztrálva van a fájl Program.cs tárolójában:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
A ASP.NET Core Configuration rendszer beolvassa a ConnectionString kulcsot. Helyi fejlesztés esetén lekéri a kapcsolati karakterláncot a appsettings.json fájlból:
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-7dc5;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Éles alkalmazások esetén a legbiztonságosabb elérhető hitelesítési folyamatot kell használni. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
SQL Server Express LocalDB (helyi adatbáziskezelő szoftver)
LocalDB:
- Az SQL Server Express Database Engine egyszerűsített verziója, amely alapértelmezés szerint telepítve van a Visual Studióval.
- Igény szerint elindul egy kapcsolati karakterlánc használatával.
- A programfejlesztésre van megcélzva. Felhasználói módban fut, így nincs összetett konfiguráció.
- Alapértelmezés szerint .mdf fájlokat hoz létre a C:/Users/{user} könyvtárban.
Az adatbázis üzembe helyezése
Hozzon létre egy SeedData nevű új osztályt a Modellek mappában. Cserélje le a létrehozott kódot a következőre:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
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-2-12"),
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();
}
}
}
}
Ha az adatbázisban vannak filmek, a kezdőérték inicializáló visszatér, és nem adódik hozzá új film.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Add meg a mag inicializálót
Cserélje le a Program.cs tartalmát a következő kódra. Az új kód ki van emelve.
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
using MvcMovie.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
// Add services to the container.
builder.Services.AddControllersWithViews();
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
SeedData.Initialize(services);
}
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Törölje az adatbázis összes rekordjait. Ezt a böngészőben vagy az SSOX-ban található törlési hivatkozásokkal teheti meg.
Tesztelje az alkalmazást. Kényszerítse az alkalmazást az inicializálásra, és hívja meg a kódot a Program.cs fájlban, így a kezdő metódus fut. Az inicializálás kényszerítéséhez zárja be a Visual Studio által megnyitott parancssori ablakot, és indítsa újra a Ctrl+F5 billentyűkombinációt.
Az alkalmazás megjeleníti a beszúrt adatokat.
Bevezetés
Az oktatóanyag-sorozat ezen része az SQL-adatbázis ASP.NET Core MVC-alkalmazásban való használatával foglalkozik.
A következő témákkal fog megismerkedni:
- Regisztrálja és konfigurálja az Entity Framework Core adatbáziskörnyezetét a ASP.NET Core MVC-alkalmazáshoz.
- Adatbázis-kapcsolati sztringek helyi fejlesztéshez való használatával.
- Az SQL Server Express LocalDB használatával fejlesztheti és megvizsgálhatja az adatbázist és az adatokat az SQL Server Object Explorerrel.
- Az adatbázis üzembe helyezése kezdeti mintaadatokkal.
Előfeltétel
Ez az oktatóanyag az előző lépésben beállított adatbázist használja: 4. rész, modell hozzáadása egy ASP.NET Core MVC-alkalmazáshoz.
Az adatbázis-környezet használata
A MvcMovieContext objektum kezeli az adatbázishoz való csatlakozás és Movie objektumok adatbázisrekordokhoz való leképezésének feladatát. A fájl ConfigureServices metódusában az adatbázis-környezet a Startup.cs konténerbe van regisztrálva.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));
}
A ASP.NET Core Configuration rendszer beolvassa a ConnectionString kulcsot. Helyi fejlesztés esetén lekéri a kapcsolati karakterláncot a appsettings.json fájlból:
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-2;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Éles alkalmazások esetén a legbiztonságosabb elérhető hitelesítési folyamatot kell használni. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
SQL Server Express LocalDB (helyi adatbáziskezelő szoftver)
LocalDB:
- Az SQL Server Express Database Engine egyszerűsített verziója, amely alapértelmezés szerint telepítve van a Visual Studióval.
- Igény szerint elindul egy kapcsolati karakterlánc használatával.
- A programfejlesztésre van megcélzva. Felhasználói módban fut, így nincs összetett konfiguráció.
- Alapértelmezés szerint .mdf fájlokat hoz létre a C:/Users/{user} könyvtárban.
Az adatbázis vizsgálata
A Nézet menüben nyissa meg SQL Server Object Explorer (SSOX).
Kattintson a jobb gombbal a Movie táblára > Nézettervező
Figyelje meg a IDmelletti kulcsikont. Alapértelmezés szerint az EF egy ID nevű tulajdonságot készít az elsődleges kulcsból.
Kattintson a jobb gombbal a Movie táblára > Adatok megtekintése
Az adatbázis üzembe helyezése
Hozzon létre egy SeedData nevű új osztályt a Modellek mappában. Cserélje le a létrehozott kódot a következőre:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcMovie.Data;
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-2-12"),
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();
}
}
}
}
Ha az adatbázisban vannak filmek, a kezdőérték inicializáló visszatér, és nem adódik hozzá új film.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Add meg a mag inicializálót
Cserélje le a Program.cs tartalmát a következő kódra:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MvcMovie.Data;
using MvcMovie.Models;
using System;
namespace MvcMovie
{
public class Program
{
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
SeedData.Initialize(services);
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred seeding the DB.");
}
}
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
Tesztelje az alkalmazást.
Törölje az adatbázis összes rekordjait. Ezt a böngészőben vagy az SSOX-ban található törlési hivatkozásokkal teheti meg.
Kényszerítse az alkalmazást az inicializálásra, és hívja meg a metódusokat a Startup osztályban, hogy a kezdő metódus fusson. Az inicializálás kényszerítéséhez az IIS Expresst le kell állítani és újra kell indítani. Ezt a következő módszerek bármelyikével teheti meg:
Kattintson a jobb gombbal az IIS Express rendszertálca ikonra az értesítési területen, és koppintson Kilépés vagy Webhely leállítása:
- Ha nem hibakeresési módban futtatta a VS-t, nyomja le az F5 billentyűt a hibakeresési módban való futtatáshoz
- Ha hibakeresési módban futtatta a VS-t, állítsa le a hibakeresőt, és nyomja le az F5 billentyűt
Az alkalmazás megjeleníti a beszúrt adatokat.