Как поделиться сущностью, которая управляется хостом, но доступна арендаторам? - PullRequest
0 голосов
/ 08 июня 2018

Использование aspnetboilerplate v3.6

Приложение имеет объект Book, который управляется (CRUD) только хостом.Однако арендаторы должны иметь доступ только для чтения к этой сущности.

Например, пользователь-арендатор должен видеть список доступных книг.Цель состоит в том, чтобы пользователь-арендатор мог выбрать список своих любимых книг, но эти книги создаются только хостом.

1 Ответ

0 голосов
/ 09 июня 2018
public class Book: Entity, IMayHaveTenant
{
    public int? TenantId { get; set; }

    public string BookName { get; set; }
}

Интерфейс IMayHaveTenant определяет TenantId, но он может иметь значение NULL.Нулевое значение означает, что это сущность хоста, ненулевое значение означает, что эта сущность принадлежит арендатору, в котором Id является TenantId.ASP.NET Boilerplate использует IAbpSession для получения текущего TenantId по умолчанию.Фильтр IMayHaveTenant не так распространен, как фильтр IMustHaveTenant, но он может вам понадобиться для общих типов полномочий, используемых как хостом, так и арендаторами.

Когда вы хотите получить все книги из страницы арендаторов.

using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
{
    var allBooks = _bookRepository.GetAllList();                
}

Или вы можете просто бросить IMayHaveTenant и попробовать

public class Book: Entity
{
    public string BookName { get; set; }
}
...