如何将字段映射到 class 的新实例?
How to map a field to a new instance of a class?
我正在编写一个 ASP.NET 核心 WebAPI 项目,但遇到映射问题。由于我无法在 Entity Framework Core 中创建基元集合,因此我创建了一个实体来存储所需的基元。但是在上层我真的不需要一个单独的 class 和一个原语。是否可以创建从 class 到原语(为了方便使用)并返回(将它们存储在数据库中)的映射?
Realtor.cs
[Key]
[Required]
public int Id { get; set; }
[Required]
[MaxLength(20)]
public string FirstName { get; set; }
[Required]
[MaxLength(20)]
public string SecondName { get; set; }
[Required]
[MaxLength(20)]
public string LastName { get; set; }
[Required]
public ICollection<PhoneNumber> Numbers { get; set; }
[ForeignKey("Photo")]
public int PhotoId { get; set; }
public Image Photo { get; set; }
}
PhoneNumber.cs(即class原始)
[Key]
[Required]
public int Id { get; set; }
[Required]
[StringLength(13, MinimumLength = 10)]
public string Number { get; set; }
Realtor.cs(业务层)
public int Id { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string LastName { get; set; }
public ICollection<string> Numbers { get; set; }
public int PhotoId { get; set; }
public Image Photo { get; set; }
所以我在这里需要的是将 ICollection<PhoneNumber>
绑定到 ICollection<string>
。还是不这样做更好?
可以将 映射到 一个 IEnumerable<string>
用于显示等,但是如果您添加或修改,您应该坚持使用 List<PhoneNumber>
。这是因为每个 phone 号码的 PK 都至关重要。否则,您最终将添加新的(即重复的)phone 条记录,而不是修改现有记录。
我正在编写一个 ASP.NET 核心 WebAPI 项目,但遇到映射问题。由于我无法在 Entity Framework Core 中创建基元集合,因此我创建了一个实体来存储所需的基元。但是在上层我真的不需要一个单独的 class 和一个原语。是否可以创建从 class 到原语(为了方便使用)并返回(将它们存储在数据库中)的映射?
Realtor.cs
[Key]
[Required]
public int Id { get; set; }
[Required]
[MaxLength(20)]
public string FirstName { get; set; }
[Required]
[MaxLength(20)]
public string SecondName { get; set; }
[Required]
[MaxLength(20)]
public string LastName { get; set; }
[Required]
public ICollection<PhoneNumber> Numbers { get; set; }
[ForeignKey("Photo")]
public int PhotoId { get; set; }
public Image Photo { get; set; }
}
PhoneNumber.cs(即class原始)
[Key]
[Required]
public int Id { get; set; }
[Required]
[StringLength(13, MinimumLength = 10)]
public string Number { get; set; }
Realtor.cs(业务层)
public int Id { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string LastName { get; set; }
public ICollection<string> Numbers { get; set; }
public int PhotoId { get; set; }
public Image Photo { get; set; }
所以我在这里需要的是将 ICollection<PhoneNumber>
绑定到 ICollection<string>
。还是不这样做更好?
可以将 映射到 一个 IEnumerable<string>
用于显示等,但是如果您添加或修改,您应该坚持使用 List<PhoneNumber>
。这是因为每个 phone 号码的 PK 都至关重要。否则,您最终将添加新的(即重复的)phone 条记录,而不是修改现有记录。