Я пытаюсь реализовать отношение «один к одному» в Entity Framework с кодом First. Я хочу создать стол самолета, в котором есть FlightPlan.Realite Entity Framework отношение один к одному
Самолет:
public class Airplane
{
[Key]
public int AirplaneId { get; set; }
public int Capacity { get; set; }
public AirplaneStatus AirplaneStatus { get; set; }
public int AmountOfPassengers { get; set; }
public int AirfieldId { get; set; }
public virtual FlightPlan FlightPlan { get; set; }
}
Flightplan:
public class FlightPlan
{
[Key]
[ForeignKey("Airplane")]
public int AirplaneId { get; set; }
public int AirfieldFrom { get; set; }
public int AirfieldTo { get; set; }
public int AmountOfPassengers { get; set; }
public virtual Airplane Airplane { get; set; }
}
Когда я инициализировать эти классы с миграциями следующая структура создается таблица:
После того как я смог создать Самолет с FlightPlan, который некоторые обходные пути, у Самолета нет Flightplan независимо от того, что я пытаюсь.
Как я могу решить эту проблему?
Редактировать
Для тестирования я добавить Flightplan к каждому обновленный самолет. После исправления этого маршрута создается для добавления Flightplan. Код:
var airplane = _context.Airplanes.Find(model.AirplaneId);
var flightplan = new FlightPlan() { AirfieldFrom = 1, AirfieldTo = 2, AmountOfPassengers = 30 };
airplane.FlightPlan = flightplan;
_context.SaveChanges();
решение моей проблемы, чтобы заставить EF включить Flightplan при получении самолета.
Вы создали план полета и добавили его в БД? Опубликуйте код создания самолета/плана полета. – Gusman
Ваша модель верна. Показать код вставки. http://www.entityframeworktutorial.net/EntityFramework4.3/add-one-to-one-entity-using-dbcontext.aspx –
кстати, почему у вас есть «AmountOfPassengers» на обоих - полет и самолет? Является ли тот, который на самолете должен быть мощностью? –