0
我有一个EF 4.1 POCO类与Vehicle和VehicleOwner。递归加载EF 4.1中的stackoverflow POCO
当我加载包括车辆在内的VehicleOwner时,车辆仍然加载VehicleOwner,当您使用Mapper时,它最终会出现在堆栈溢出异常中。
下面是代码示例
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; }
}
//当我做到这一点的车辆将会被填充,当您展开VehicleOwner再次填充车辆。
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>();
}
有没有办法可以阻止这个递归循环。
谢谢
谢谢,我正在为poco设计一个映射器,我有stackoverflow异常。我想我会转向automapper。 – Michael
感谢您的评论。我现在在使用AutoMapper,映射是可以的,但是当从WCF返回配对的DTO时,我有这个错误信息 - “底层连接已关闭:连接意外关闭。” – Michael
感谢您的评论。我现在在使用AutoMapper,映射是可以的,但是当从WCF返回配对的DTO时,我有这个错误信息 - “底层连接已关闭:连接意外关闭。”感谢您的评论。我现在在使用AutoMapper,映射是可以的,但是当从WCF返回配对的DTO时,我有这个错误信息 - “底层连接已关闭:连接意外关闭。”但是当我通过从WCF返回它的循环来改变车辆中的VehicleOwner为null时。 – Michael