Затем щелкните правой кнопкой мыши на имени решения, выберите в контекстном меню пункт Add?Existing Project (Добавить?Существующий проект) и добавьте проекты
AutoLot.Dal
и
AutoLot.Dal.Models
из главы 23, а также ссылки на эти проекты. Сделать это можно также с помощью интерфейса командной строки, выполнив показанные ниже команды (вам придется скорректировать пути к проектам согласно требованиям имеющейся операционной системы):
два свойства уровня модуля для хранения экземпляров реализации
IConfiguration
и класса
ApplicationDbContext
:
private IConfiguration _configuration;
private ApplicationDbContext _context;
Добавьте новый метод по имени
GetConfigurationAndContext
для хранения экземпляров реализации
IConfiguration
и класса
ApplicationDbContext
и вызовите его в конструкторе. Вот полный код метода:
private void GetConfigurationAndDbContext
{
_configuration = new ConfigurationBuilder
.SetBasePath(Directory.GetCurrentDirectory)
.AddJsonFile("appsettings.json", true, true)
.Build;
var optionsBuilder =
new DbContextOptionsBuilder<ApplicationDbContext>;
var connectionString =
_configuration.GetConnectionString("AutoLot");
optionsBuilder.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure);
_context = new ApplicationDbContext(optionsBuilder.Options);
}
Добавьте
в проект новый файл JSON по имени
appsettings.json
. Щелкните правой кнопкой мыши на имени этого файла в окне Solution Explorer, выберите в контекстном меню пункт Properties (Свойства) и установите свойство Copy То Output Directory (Копировать в выходной каталог) в Copy always (Всегда копировать). Вы можете добиться того же самого результата с помощью файла проекта:
Модифицируйте файл JSON, как показано ниже (приведя строку подключения в соответствие со своей средой):
{
"ConnectionStrings": {
"AutoLotFinal": "server=.,5433;Database=AutoLot;
User Id=sa;Password=P@ssw0rd;"
}
}
Откройте файл
MainWindow.xaml.cs
, добавьте последнюю вспомогательную функцию по имени
ConfigureGrid
и вызовите ее в конструкторе после конфигурирования
ApplicationDbContext
. Понадобится добавить лишь несколько строк кода:
private void ConfigureGrid
{
using var repo = new CarRepo(_context);
gridInventory.ItemsSource = repo
.GetAllIgnoreQueryFilters
.ToList
.Select(x=> new {
x.Id,
Make=x.MakeName,
x.Color,
x.PetName
});
}
Запустив проект, вы увидите данные, заполняющие сетку. При желании сделать сетку более привлекательной можно применить окно Properties в Visual Studio для редактирования свойств сетки, чтобы улучшить ее внешний вид.