C# 转换错误无法将类型转换为System.Data.Objects.DataClasses.EntityCollection
我试图用Entity Framework更新连接表,但我没有走多远,因为我得到了一个转换错误: 无法将类型转换为System.Data.Objects.DataClasses.EntityCollection 因此,当我试图将乘客对象传递给飞行实体时,它无法进行投射 以下是表格结构:C# 转换错误无法将类型转换为System.Data.Objects.DataClasses.EntityCollection,c#,entity-framework,casting,C#,Entity Framework,Casting,我试图用Entity Framework更新连接表,但我没有走多远,因为我得到了一个转换错误: 无法将类型转换为System.Data.Objects.DataClasses.EntityCollection 因此,当我试图将乘客对象传递给飞行实体时,它无法进行投射 以下是表格结构: Flight table - FlightID PK Passenger Table - Passenger ID PK Passenger_Flight table - PassengerID PK,Flight
Flight table - FlightID PK
Passenger Table - Passenger ID PK
Passenger_Flight table - PassengerID PK,FlightID PK
if (isValid())
{
Passenger cpass = ((Passenger)passengerIDComboBox.SelectedItem);
Flight newflight = new Flight {
Rego = planeRegoComboBox.SelectedItem.ToString(),
DepartureTime = departureDateTimePicker.Value,
ArrivalTime = arrivalDateTimePicker.Value,
DepartureLocation = departureLocationComboBox.GetItemText(departureLocationComboBox.SelectedItem),
ArrivalLocation = arrivalLocationComboBox.GetItemText(arrivalLocationComboBox.SelectedItem),
Passengers = cpass // this is the problem. Cannot convert type to System.Data.Objects.DataClasses.EntityCollection
};
flightEntity.Flights.AddObject(newflight);
Validate();
//flightEntity.Passengers.AddObject(pass);
flightEntity.SaveChanges();
refreshItems();
}
提前谢谢。我希望我提供了足够的信息。此问题链接到如果乘客是一个集合,您是否应该先创建
newFlight
,然后再执行newFlight.patients.Add(CPAS)
?否则,您希望如何将单个乘客分配给乘客集合?您好,谢谢。newFlight.Passators.Add(CPAS)给了我以下错误:一个实体对象不能被多个IEntityChangeTracker实例引用。我相信乘客是一个实体参考集合。因此,添加一个乘客对象,然后在连接表中创建关系。如果这不是正确的术语,请纠正我。如果实体已被跟踪,请尝试。附加不走运。错误消息为:当与此相关端关联的源对象处于添加、删除或分离状态时,“附加”不是有效的操作。当CPAS似乎已经被其他上下文跟踪时,使用“无跟踪合并”选项加载的对象总是被删除。一个实体不能同时被多个上下文跟踪。