Abp Domain

ABP 领域层 — 实体、聚合根、值对象、领域服务。Use when designing domain entities, aggregate roots, value objects in ABP.

liaosw97 Updated

File contents

ABP 领域层

聚合根定义

public class User : AggregateRoot<Guid>
{
    public string UserName { get; private set; }
    public string Email { get; private set; }

    private User() { } // ORM 需要

    public User(Guid id, string userName, string email) : base(id)
    {
        UserName = userName;
        Email = email;
    }

    public void UpdateEmail(string email)
    {
        Email = email;
        AddLocalEvent(new UserEmailChangedEvent(Id, email));
    }
}

值对象

public class EmailAddress : ValueObject
{
    public string Address { get; private set; }

    private EmailAddress() { }

    public EmailAddress(string address)
    {
        Address = address;
    }

    protected override IEnumerable<object> GetAtomicValues()
    {
        yield return Address;
    }
}

仓储接口

public interface IUserRepository : IRepository<User, Guid>
{
    Task<User?> FindByUserNameAsync(string userName);
}

liaosw97/awesome-rules-skills/tree/main/plugins/abp-framework/skills/abp-domain commit a608cd1049

Frequently asked questions

npx skillmds@latest add liaosw97/abp-domain