Часть 5. Работа с базой данных в приложении MVC ASP.NET Core
Примечание.
Это не последняя версия этой статьи. В текущем выпуске см . версию .NET 9 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в статье о политике поддержки .NET и .NET Core. В текущем выпуске см . версию .NET 8 этой статьи.
Внимание
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
В текущем выпуске см . версию .NET 9 этой статьи.
Авторы: Рик Андерсон (Rick Anderson) и Джон П. Смит (Jon P Smith)
Объект MvcMovieContext
обрабатывает задачу подключения к базе данных и сопоставления объектов Movie
с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в файле Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext") ?? throw new InvalidOperationException("Connection string 'MvcMovieContext' not found.")));
Система конфигурации ASP.NET Core считывает ключ ConnectionString
. Для разработки на локальном уровне она получает строку подключения из файла appsettings.json
.
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-4ebefa10-de29-4dea-b2ad-8a8dc6bcf374;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Предупреждение
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
SQL Server Express LocalDB
LocalDB
- — это упрощенная версия ядра СУБД SQL Server Express, устанавливаемая по умолчанию с Visual Studio.
- Запускается по требованию с помощью строки подключения.
- Используется для разработки программ. Запускается в пользовательском режиме, поэтому конфигурация не слишком сложная.
- По умолчанию создает файлы .mdf в каталоге C:/Users/{user}.
Проверка базы данных
В меню Вид откройте обозреватель объектов SQL Server (SSOX).
Щелкните правой кнопкой мыши конструктор представлений Movie
таблицы (dbo.Movie
) >
Обратите внимание на значок с изображением ключа рядом с ID
. По умолчанию EF сделает свойство с именем ID
первичным ключом.
Щелкните правой кнопкой мыши таблицу Movie
>Просмотр данных.
Заполнение базы данных
Создайте класс SeedData
в папке Models. Замените сгенерированный код следующим кодом:
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();
}
}
}
Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Добавление инициализатора заполнения
Замените все содержимое Program.cs
следующим кодом: Новый код выделен.
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();
Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.
Тестирование приложения. Принудительно инициализировать приложение, вызывая код в Program.cs
файле, поэтому начальный метод запускается. Чтобы выполнить инициализацию принудительно, закройте окно командной строки, открытое Visual Studio, и перезапустите, нажав клавиши CTRL+F5.
В приложении будут отображены данные.
Объект MvcMovieContext
обрабатывает задачу подключения к базе данных и сопоставления объектов Movie
с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в файле Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
Система конфигурации ASP.NET Core считывает ключ ConnectionString
. Для разработки на локальном уровне она получает строку подключения из файла appsettings.json
.
"ConnectionStrings": {
"MvcMovieContext": "Data Source=MvcMovieContext-ea7a4069-f366-4742-bd1c-3f753a804ce1.db"
}
Предупреждение
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
SQL Server Express LocalDB
LocalDB
- — это упрощенная версия ядра СУБД SQL Server Express, устанавливаемая по умолчанию с Visual Studio.
- Запускается по требованию с помощью строки подключения.
- Используется для разработки программ. Запускается в пользовательском режиме, поэтому конфигурация не слишком сложная.
- По умолчанию создает файлы .mdf в каталоге C:/Users/{user}.
Проверка базы данных
В меню Вид откройте обозреватель объектов SQL Server (SSOX).
Щелкните правой кнопкой мыши конструктор представлений Movie
таблицы (dbo.Movie
) >
Обратите внимание на значок с изображением ключа рядом с ID
. По умолчанию EF сделает свойство с именем ID
первичным ключом.
Щелкните правой кнопкой мыши таблицу Movie
>Просмотр данных.
Заполнение базы данных
Создайте класс SeedData
в папке Models. Замените сгенерированный код следующим кодом:
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();
}
}
}
Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Добавление инициализатора заполнения
Замените все содержимое Program.cs
следующим кодом: Новый код выделен.
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();
Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.
Тестирование приложения. Принудительно инициализировать приложение, вызывая код в Program.cs
файле, поэтому начальный метод запускается. Чтобы выполнить инициализацию принудительно, закройте окно командной строки, открытое Visual Studio, и перезапустите, нажав клавиши CTRL+F5.
В приложении будут отображены данные.
Объект MvcMovieContext
обрабатывает задачу подключения к базе данных и сопоставления объектов Movie
с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в файле Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
Система конфигурации ASP.NET Core считывает ключ ConnectionString
. Для разработки на локальном уровне она получает строку подключения из файла appsettings.json
.
"ConnectionStrings": {
"MvcMovieContext": "Data Source=MvcMovieContext-ea7a4069-f366-4742-bd1c-3f753a804ce1.db"
}
Предупреждение
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
SQL Server Express LocalDB
LocalDB
- — это упрощенная версия ядра СУБД SQL Server Express, устанавливаемая по умолчанию с Visual Studio.
- Запускается по требованию с помощью строки подключения.
- Используется для разработки программ. Запускается в пользовательском режиме, поэтому конфигурация не слишком сложная.
- По умолчанию создает файлы .mdf в каталоге C:/Users/{user}.
Проверка базы данных
В меню Вид откройте обозреватель объектов SQL Server (SSOX).
Щелкните правой кнопкой мыши конструктор представлений Movie
таблицы (dbo.Movie
) >
Обратите внимание на значок с изображением ключа рядом с ID
. По умолчанию EF сделает свойство с именем ID
первичным ключом.
Щелкните правой кнопкой мыши таблицу Movie
>Просмотр данных.
Заполнение базы данных
Создайте класс SeedData
в папке Models. Замените сгенерированный код следующим кодом:
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();
}
}
}
Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
<a name=snippet_"si">
Добавление инициализатора заполнения
Замените все содержимое Program.cs
следующим кодом: Новый код выделен.
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();
Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.
Тестирование приложения. Принудительно инициализировать приложение, вызывая код в Program.cs
файле, поэтому начальный метод запускается. Чтобы выполнить инициализацию принудительно, закройте окно командной строки, открытое Visual Studio, и перезапустите, нажав клавиши CTRL+F5.
В приложении будут отображены данные.
Объект MvcMovieContext
обрабатывает задачу подключения к базе данных и сопоставления объектов Movie
с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в файле Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MvcMovieContext")));
Система конфигурации ASP.NET Core считывает ключ ConnectionString
. Для разработки на локальном уровне она получает строку подключения из файла appsettings.json
.
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-7dc5;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Предупреждение
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
SQL Server Express LocalDB
LocalDB
- — это упрощенная версия ядра СУБД SQL Server Express, устанавливаемая по умолчанию с Visual Studio.
- Запускается по требованию с помощью строки подключения.
- Используется для разработки программ. Запускается в пользовательском режиме, поэтому конфигурация не слишком сложная.
- По умолчанию создает файлы .mdf в каталоге C:/Users/{user}.
Заполнение базы данных
Создайте класс SeedData
в папке Models. Замените сгенерированный код следующим кодом:
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();
}
}
}
}
Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Добавление инициализатора заполнения
Замените все содержимое Program.cs
следующим кодом: Новый код выделен.
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();
Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.
Тестирование приложения. Принудительно инициализировать приложение, вызывая код в Program.cs
файле, поэтому начальный метод запускается. Чтобы выполнить инициализацию принудительно, закройте окно командной строки, открытое Visual Studio, и перезапустите, нажав клавиши CTRL+F5.
В приложении будут отображены данные.
Объект MvcMovieContext
обрабатывает задачу подключения к базе данных и сопоставления объектов Movie
с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в методе ConfigureServices
в файле Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<MvcMovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));
}
Система конфигурации ASP.NET Core считывает ключ ConnectionString
. Для разработки на локальном уровне она получает строку подключения из файла appsettings.json
.
"ConnectionStrings": {
"MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-2;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Предупреждение
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
SQL Server Express LocalDB
LocalDB
- — это упрощенная версия ядра СУБД SQL Server Express, устанавливаемая по умолчанию с Visual Studio.
- Запускается по требованию с помощью строки подключения.
- Используется для разработки программ. Запускается в пользовательском режиме, поэтому конфигурация не слишком сложная.
- По умолчанию создает файлы .mdf в каталоге C:/Users/{user}.
Проверка базы данных
В меню Вид откройте обозреватель объектов SQL Server (SSOX).
Щелкните правой кнопкой мыши таблицу Movie
>Конструктор представлений.
Обратите внимание на значок с изображением ключа рядом с ID
. По умолчанию EF сделает свойство с именем ID
первичным ключом.
Щелкните правой кнопкой мыши таблицу Movie
>Просмотр данных.
Заполнение базы данных
Создайте класс SeedData
в папке Models. Замените сгенерированный код следующим кодом:
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();
}
}
}
}
Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.
if (context.Movie.Any())
{
return; // DB has been seeded.
}
Добавление инициализатора заполнения
Замените все содержимое Program.cs
следующим кодом:
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>();
});
}
}
Тестирование приложения.
Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.
Приложение должно выполнить инициализацию, вызывая методы в классе Startup
, чтобы запустить метод заполнения. Для этого следует остановить и перезапустить IIS Express. Воспользуйтесь одним из перечисленных ниже подходов.
Щелкните правой кнопкой мыши значок IIS Express в области уведомлений и выберите Выйти или Остановить сайт.
- Если среда VS была запущена в режиме без отладки, нажмите клавишу F5 для запуска в режиме отладки.
- Если среда VS была запущена в режиме отладки, остановите отладчик и нажмите клавишу F5.
В приложении будут отображены данные.
ASP.NET Core