.net core EF 关系(三) DDD中的值对象

从属实体类型 - EF Core | Microsoft Learn

领域驱动中 值对象没有唯一标识 

使用 OwnsOne OwnsMany 配置

    /// <summary>
    /// 地址 值对象 没有id 标识符
    /// </summary>
    public class Address
    {
        public string City { get; set; }
    }

  

    /// <summary>
    /// 值对象 没有唯一标识
    /// </summary>
    public class Phone
    {
        public string Code { get; set; }
    }

  

    public class User
    {
        public int Id { get; set; }

        public Address Address { get; set; }

        public ICollection<Phone> Phones { get; set; }
    }

  

  配置

    public class UserEntityTypeConfiguration : IEntityTypeConfiguration<User>
    {
        public void Configure(EntityTypeBuilder<User> builder)
        {
            builder.ToTable("Users");
            builder.HasKey(x => x.Id);
            builder.OwnsOne(x => x.Address, a =>
            {
                a.Property(p => p.City).HasMaxLength(20);
            });
            builder.OwnsMany(x => x.Phones, a =>
            {
                a.Property(x=>x.Code).HasMaxLength(20);
            });
        }
    }

  

 

 

posted on 2024-04-26 16:07  是水饺不是水饺  阅读(6)  评论(0)    收藏  举报

导航