-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.xaml.cs
More file actions
45 lines (42 loc) · 1.53 KB
/
Copy pathApp.xaml.cs
File metadata and controls
45 lines (42 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using HomeworkTracker.Data;
using Microsoft.EntityFrameworkCore;
using System.Windows;
namespace HomeworkTracker
{
/// <summary>
/// Главный класс приложения, управляющий жизненным циклом приложения и
/// предоставляющий единый контекст базы данных для всех ViewModel
/// </summary>
public partial class App : Application
{
private static AppDbContext? _dbContext;
/// <summary>
/// Возвращает единый экземпляр контекста базы данных для всего приложения
/// </summary>
public static AppDbContext DbContext
{
get
{
if (_dbContext == null)
{
_dbContext = new AppDbContext();
_dbContext.Database.Migrate();
_dbContext.Disciplines
.Include(d => d.Tasks)
.ThenInclude(t => t.Attachments)
.Load();
}
return _dbContext;
}
}
/// <summary>
/// Вызывается при завершении приложения. Освобождает ресурсы
/// контекста базы данных
/// </summary>
protected override void OnExit(ExitEventArgs e)
{
_dbContext?.Dispose();
base.OnExit(e);
}
}
}