Blame view

Services/DataCacheService.cs 999 Bytes
唐召明 authored
1
2
using DataAcquisition.DataAccess;
using DataAcquisition.Models;
唐召明 authored
3
4
using Microsoft.EntityFrameworkCore;
唐召明 authored
5
namespace DataAcquisition.Services
唐召明 authored
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    public class DataCacheService
    {
        private readonly IDbContextFactory<DataContext> _dbContextFactory;

        public List<Equipment> Equipments { get; private set; } = new List<Equipment>();

        public DataCacheService(IDbContextFactory<DataContext> dbContextFactory)
        {
            _dbContextFactory = dbContextFactory;
            Initial();
        }

        private void Initial()
        {
            using var dbContext = _dbContextFactory.CreateDbContext();
            dbContext.Database.EnsureCreated();
            Equipments = dbContext.CommunicationConfigs.Where(x => x.Enable)
               .Include(x => x.Equipments.Where(x => x.Enable))
               .ThenInclude(x => x.EquipmentProperties.Where(x => x.Enable)).AsSplitQuery().ToList()
               .SelectMany(x => x.Equipments).ToList();
        }
    }
}