public class City
{
public int CityId { get; set; }
public string Name { get; set; }
public int CityTypeId { get; set; }
[ForeignKey(nameof(CityTypeId))]
public virtual CityType CityType { get; set; }
public int? ParentId { get; set; }
[ForeignKey(nameof(ParentId))]
public virtual City Parent { get; set; }
}