потому что они не находятся в иерархии одного типа или не имеют допустимого отношения один к одному внешнему ключу с соответствующими первичными ключами между ними

#entity-framework #code-first

#entity-framework #сначала код

Вопрос:

Я реализовал следующую общую модель в качестве базовой модели и две модели, полученные из нее, и мне нужно отношение один ко многим. Я использовал fluent api для создания отношений, но я получаю ошибку, указанную в названии. Не могли бы вы посмотреть, не нашли ли вы что-то неправильное в моем коде.

  public abstract class ModelBase<T> : BaseEntity, IModelBase<T>
{
    public virtual T Id { get; set; }
}

 [Table("VehicleModel", Schema = "Tracker")]
public class VehicleModelModel : ModelBase<int>
{
    public string Company { get; set; }
    public string ModelName { get; set; }
    public byte LiPerKM { get; set; }
    public virtual ICollection<VehicleModel> Vehicles { get; set; }

 [Table("Vehicle", Schema = "Tracker")]
public class VehicleModel : ModelBase<Guid>
{
    public string VehicleName { get; set; }
    public string LicensePlate { get; set; }
    public int VehicleModelId { get; set; }
    public virtual VehicleModelModel Model { get; set; }
    public virtual TrackerModel Tracker { get; set; }
    [Required]
    public virtual DriverModel Driver { get; set; }

modelBuilder.Entity<VehicleModel>()
                    .HasRequired<VehicleModelModel>(s => s.Model)
                    .WithMany(s => s.Vehicles)
                    .HasForeignKey(s => s.VehicleModelId);
  

Здесь я получаю эту ошибку:

 entity types 'VehicleModelModel' and 'VehicleModel' cannot share table 'VehicleModels' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them.