using System; using System.ComponentModel.DataAnnotations.Schema; namespace Abp.Domain.Entities.Auditing { /// /// A shortcut of for most used primary key type (). /// [Serializable] public abstract class AuditedAggregateRoot : AuditedAggregateRoot { } /// /// This class can be used to simplify implementing for aggregate roots. /// /// Type of the primary key of the entity [Serializable] public abstract class AuditedAggregateRoot : CreationAuditedAggregateRoot, IAudited { /// /// Last modification date of this entity. /// public virtual DateTime? LastModificationTime { get; set; } /// /// Last modifier user of this entity. /// public virtual long? LastModifierUserId { get; set; } } /// /// This class can be used to simplify implementing for aggregate roots. /// /// Type of the primary key of the entity /// Type of the user [Serializable] public abstract class AuditedAggregateRoot : AuditedAggregateRoot, IAudited where TUser : IEntity { /// /// Reference to the creator user of this entity. /// [ForeignKey("CreatorUserId")] public virtual TUser CreatorUser { get; set; } /// /// Reference to the last modifier user of this entity. /// [ForeignKey("LastModifierUserId")] public virtual TUser LastModifierUser { get; set; } } }