查询属性被修改的版本,如果 属性 被修改则 select 一个标志

Query revisions where properties were modified and select a flag if property was modified

我有以下class

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

审计 table 看起来像这样

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();

到目前为止这有效并且 returns 和 IEnumerable<Product, DefaultRevisionEntity>。 我得到所有修订,其中 属性 Description、属性 Price 或两者都发生了变化。包含RevisionIdRevisionDate的信息。

但我还想查看每次修订更改了哪些属性,因为我想将其显示给用户。所以基本上我想在结果中有 HasChanged 标志。这可能吗?

不,目前不支持。

欢迎就此添加 JIRA ticket