Entity Framework Core中的关系修复与数据操作
1. 关系修复示例
1.1 案例1
在这个案例中,首先将一个航班加载到 flight
变量中,然后尝试打印该航班的飞行员 Pilot
对象的 PilotId
值。但此时 Pilot
对象不可用,因为它没有和航班一起加载,并且Entity Framework Core目前不支持延迟加载。
接着,使用ID将该航班对应的 Pilot
对象单独加载到 pilot
变量中。通常情况下, Pilot
对象和 Flight
对象此时应该是相互分离的,但通过关系修复(relationship fixup), flight.Pilot
显示已经建立了关系,同样,反向关系也被记录下来, pilot.FlightAsPilotSet
显示了之前加载的航班。
以下是案例1的代码示例:
public static void RelationshipFixUp_Case1()
{
CUI.MainHeadline(nameof(RelationshipFixUp_Case1));
using (var ctx = new WWWingsContext())
{
int flightNr = 101;