.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);
});
}
}