Кэширование пользовательских данных с несколькими арендаторами - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь понять, как лучше кэшировать.Допустим, у меня есть контроллер, который возвращает данные, специфичные для организации

У меня есть контекст, использующий mutlti-tenancy,

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Employees>().Property<string> ("TenantId").HasField("_tenantId");

    // Configure entity filters
    modelBuilder.Entity<Employees>().HasQueryFilter(b => EF.Property<string>(b, "TenantId") == _tenantId);
}

и некоторый метод для возвращения сотрудников в организации

public Employee[] GetEmployees(int organizationId)
{
    var employees = this._context.Employees.Where(x => x.OrganizationId == organizationId).ToArray();
    return employees;
}

Если бы я кешировал это, это могло бы выглядеть примерно так:

public Employee[] GetEmployees(int organizationId)
{
    if(this.TryGetFromCache(organizationId, out var cachedEmployees)
    {
        return cachedEmployees;
    } 

    var employees = this._context.Employees.Where(x => x.OrganizationId == organizationId).ToArray();

    this.AddToCache(organizationId, employees);
    return employees;
}

Моя проблема в том, как проверить, имеет ли пользователь, запрашивающий сотрудников, доступ к кэшированным сотрудникам?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...