Хобрук: Ваш путь к мастерству в программировании

Запрос ревизий, в которых свойства были изменены, и выбор флага, если свойство было изменено

У меня есть следующий класс

public class Product
{
    public virtual int Id { get; set; }
    public virtual double Price { get; set; }
    public virtual string Description { get; set; }
}

Таблица аудита выглядит так

CREATE TABLE Product_AUD (
    Id integer not null,
    REV integer not null,
    Price float,
    Price_MOD bit,
    Description varchar(255),
    Description_MOD bit,
    REVTYPE tinyint not null,
    primary key (id, REV)
);

Мой запрос выглядит так

var revisionEntityInfos =
    Session.Auditer().CreateQuery()
           .ForHistoryOf<Product, DefaultRevisionEntity>()
           .Add(AuditEntity.Id().Eq(ProductId))
           .Add(AuditEntity.Or(AuditEntity.Property("Description").HasChanged(),
                               AuditEntity.Property("Price").HasChanged()))
           .Results();

Пока это работает и возвращает IEnumerable<Product, DefaultRevisionEntity>. Я получаю все ревизии, в которых изменилось либо свойство Description, либо свойство Price, либо оба. Информация о RevisionId и RevisionDate включена.

Но я также хочу видеть, какие свойства изменились для каждой ревизии, так как я хочу показать это пользователю. Итак, в основном я хочу, чтобы в результате был флаг HasChanged. Это возможно?


Ответы:


1

Нет, в настоящее время не поддерживается.

Вы можете добавить тикет JIRA по этому поводу.

11.01.2017
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..