Я получил следующие коды:
public class Trip
{
public int TripId { get; set; }
public int DriverId { get; set; }
public string StartingPoint { get; set; }
public string Destination { get; set; }
public DateTime TimeDepart { get; set; }
public int SeatAvailable { get; set; }
public virtual Carpooler Carpooler { get; set; }
public virtual ICollection<Passenger> Passengers { get; set; }
}
public class Driver
{
public int DriverId { get; set; }
public int TripId { get; set; }
public virtual Trip Trip { get; set; }
}
public class Passenger
{
public int PassengerId { get; set; }
public int TripId { get; set; }
public virtual Trip Trip { get; set; }
}
Строитель модели:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//one-to-one between Trip and Carpooler
modelBuilder.Entity<Trip>()
.HasRequired(x => x.Carpooler)
.WithRequiredDependent();
modelBuilder.Entity<Carpooler>()
.HasRequired(x => x.Trip)
.WithRequiredPrincipal();
base.OnModelCreating(modelBuilder);
//zero or one-to-many between Trip and Passenger
modelBuilder.Entity<Trip>()
.HasOptional(x => x.Passengers);
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
Инициализатор:
Database.SetInitializer<LiveGreenContext>(new CarpoolTripInitializer());
И я получаю следующую ошибку:Кратность недопустима в роли «Trip_Driver_Target» в отношении «Trip_Driver».Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница кратности зависимой роли должна быть *.
Есть ли решение проблемы?Спасибо!