EF 4.1 POCO中递归加载中的stackoverflow



我有一个EF 4.1 POCO类与Vehicle和VehicleOwner。

当我加载eager load的VehicleOwner,包括车辆,车辆仍然加载VehicleOwner,当你与Mapper结束在一个stackoverflow异常。

下面是代码示例
public class VehicleOwner : IVehicleOwner
    {
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity),ScaffoldColumn(false)]
    public int VehicleOwnerId { get; set; }
    [Required,DisplayName("First Name")]
    public string FirstName{ get; set; }
    [Required,DisplayName("Last Name")]
    public string LastName { get; set; }
    public virtual ICollection<Vehicle> Vehicles { get; set; }
}
public class Vehicle
{
    public Vehicle()
    {
        this.RecoveredVehicles = new HashSet<RecoveredVehicles>();
    }
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int VehicleId { get; set; }
    [DisplayName("Identification Number")]
    public string IdentificationNumber { get; set; }
    [Required]
    [DisplayName("Owner ID")]
    public int VehicleOwnerId { get; set; }
    [Required]
    [ScaffoldColumn(false)]
    public byte[] RowVersion { get; set; }

    public virtual VehicleOwner VehicleOwner { get; set; }
    public virtual ICollection<RecoveredVehicle> RecoveredVehicles { get; set; }
}

//当我这样做的车辆得到填充,当你展开车辆的车辆所有者再次填充。

public VehicleOwner GetVehicleOwner(int vehicleOwnerID)
{
   objDataContext.Configuration.ProxyCreationEnabled = false;
   return (from p in objDataContext.VehicleOwners.Include("Vehicles") where p.VehicleOwnerId == vehicleOwnerID select p).FirstOrDefault<VehicleOwner>();        
}

有没有办法可以防止这个递归循环?

谢谢

没有递归循环。Vehicle指向原来的VehicleOwner。它只是反向引用,无法避免(除非你删除了反向引用导航属性)。

最新更新