Я пытаюсь добавить некоторую информацию к результату, независимо от того, имеет ли пользователь права на чтение или запись для объекта.Добавить вычисленное значение в результат OData
Давайте предположим, что у меня есть эта сущность:
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Access> AccessRights { get; set; }
}
Где AccessRights
имеет идентификатор пользователя, и если они имеют доступ чтения/записи.
В настоящее время я просто $expand
AccessRights и вычислить, имеет ли пользователь доступ для чтения/записи в интерфейсе. Однако я хотел бы, чтобы это вычисляемое свойство добавлялось к результату.
Пример JSON результат:
{
id: 1,
name: "foo",
hasReadAccess: true,
hasWriteAccess: true
}
Можно ли это сделать? Имейте в виду, что HasRead/WriteAccess
не существует на модели и не должен.
Так я обычно это делаю. Но я не вижу, как DTO будут хорошо играть с контроллерами OData. –
Зачем это важно? DTO - это тип объекта, который обрабатывает контроллер. – lencharest
Поскольку контроллер OData напрямую взаимодействует с вашей репутацией. Таким образом, вы можете фильтровать и сортировать по URL-адресу. –