Чтение онлайн

на главную

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

</StackPanel>

</TabItem>

С помощью диспетчера пакетов NuGet добавьте в проект следующие пакеты:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.Json

Если вы предпочитаете добавлять пакеты в интерфейсе командной строки .NET Core, тогда введите приведенные далее команды (в

каталоге решения):

dotnet add WpfControlsAndAPIs package Microsoft.EntityFrameworkCore

dotnet add WpfControlsAndAPIs package Microsoft.EntityFrameworkCore.SqlServer

dotnet add WpfControlsAndAPIs package Microsoft.Extensions.Configuration

dotnet add WpfControlsAndAPIs package Microsoft.Extensions.Configuration.Json

Затем щелкните правой кнопкой мыши на имени решения, выберите в контекстном меню пункт Add?Existing Project (Добавить?Существующий проект) и добавьте проекты

AutoLot.Dal
и
AutoLot.Dal.Models
из главы 23, а также ссылки на эти проекты. Сделать это можно также с помощью интерфейса командной строки, выполнив показанные ниже команды (вам придется скорректировать пути к проектам согласно требованиям имеющейся операционной системы):

dotnet sln .\Chapter25_AllProjects.sln add ..\Chapter_23\AutoLot.Models

dotnet sln .\Chapter25_AllProjects.sln add ..\Chapter_23\AutoLot.Dal

dotnet add WpfControlsAndAPIs reference ..\Chapter_23\AutoLot.Models

dotnet add WpfControlsAndAPIs reference ..\Chapter_23\AutoLot.Dal

Убедитесь, что в проекте

AutoLot.Dal
все еще присутствует ссылка на проект
AutoLot.Dal.Models
. Добавьте в файл
MainWindow.xaml.cs
следующие пространства имен:

using System.Linq;

using AutoLot.Dal.EfStructures;

using AutoLot.Dal.Repos;

using Microsoft.EntityFrameworkCore;

using Microsoft.Extensions.Configuration;

Добавьте в

MainWindow.cs
два свойства уровня модуля для хранения экземпляров реализации
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 (Всегда копировать). Вы можете добиться того же самого результата с помощью файла проекта:

<ItemGroup>

<None Update="appsettings.json">

<CopyToOutputDirectory>Always</CopyToOutputDirectory>

</None>

</ItemGroup>

Модифицируйте файл 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 для редактирования свойств сетки, чтобы улучшить ее внешний вид.

Поделиться:
Популярные книги

Отверженный VIII: Шапка Мономаха

Опсокополос Алексис
8. Отверженный
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Отверженный VIII: Шапка Мономаха

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод

Главная роль

Смолин Павел
1. Главная роль
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Главная роль

(не)Бальмануг.Дочь

Лашина Полина
7. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(не)Бальмануг.Дочь

Огненный князь

Машуков Тимур
1. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь

Бастард Императора. Том 5

Орлов Андрей Юрьевич
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 5

Сам себе властелин 3

Горбов Александр Михайлович
3. Сам себе властелин
Фантастика:
фэнтези
юмористическая фантастика
5.73
рейтинг книги
Сам себе властелин 3

Гром над Академией. Часть 1

Машуков Тимур
2. Гром над миром
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Гром над Академией. Часть 1

Мимик нового Мира 15

Северный Лис
14. Мимик!
Фантастика:
боевая фантастика
юмористическая фантастика
постапокалипсис
рпг
фэнтези
5.00
рейтинг книги
Мимик нового Мира 15

Не верь мне

Рам Янка
7. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Не верь мне

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Дыхание Ивента

Мантикор Артемис
7. Покоривший СТЕНУ
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Дыхание Ивента

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Господин следователь

Шалашов Евгений Васильевич
1. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь