在ABP框架中定义Person实体类

我们在**.Core**(领域层)项目中定义实体。

现在创建一个Person实体,它对应电话薄中的人的信息。同时也会映射到数据库中,作为ltm_Persons表存在。关于 实体映射到数据库的内容,请查看ASP.NET Core 中同步领域模型与数据库架构。代码如下:

namespace YoyoSoft.PhoneBookDemo.PhoneBooks.Persons
{
    /// <summary>
    /// 人员
    /// </summary>
    [Table(AppConsts.TablePrefix + "Persons")]
    public class Person : FullAuditedEntity<Guid>
    {
        /// <summary>
        /// 邮件地址最大长度
        /// </summary>
        public const int MaxEmailAddressLength = 250;

        /// <summary>
        /// 名字最大长度
        /// </summary>
        public const int MaxNameLength = 50;

        /// <summary>
        /// 地址的最大长度
        /// </summary>
        public const int MaxAddressLength = 250;

        /// <summary>
        /// 姓名
        /// </summary>
        [Required]
        [MaxLength(MaxNameLength)]
        public string Name { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        [EmailAddress]
        [MaxLength(MaxEmailAddressLength)]
        public string EmailAddress { get; set; }

        /// <summary>
        /// 地址信息
        /// </summary>
        [MaxLength(MaxAddressLength)]
        public string Address { get; set; }
    }
}

Person的主键类型为Guid。 它继承FullAuditedEntity,其中包含creationmodificationdelete等审计属性。 删除默认也开启了软删除

当我们删除一个人,它不会被数据库删除,而是标记为已删除(请参见 实体数据过滤器文档以获取更多信息)。

现在我们需要将Person实体信息,添加到 .EntityFrameworkCore 项目中的PhoneBookDemoDbContext类中,用于EF Core与数据库的映射关系。

 public class PhoneBookDemoDbContext : AbpZeroDbContext<Tenant, Role, User, PhoneBookDemoDbContext>, IAbpPersistedGrantDbContext
    {
           //...其他实体信息


    public virtual DbSet<Person> Persons { get; set; }


 public PhoneBookDemoDbContext(DbContextOptions<PhoneBookDemoDbContext> options)
            : base(options)
        {
        }
    
        //...其他方法和代码

    
    }

下一篇