C# 4.0 EF 4.1 POCO中递归加载的堆栈溢出
我有一个EF 4.1 POCO等级,包括车辆和车主 当我加载VehicleOwner(包括车辆)时,车辆仍会加载VehicleOwner,当您使用映射器时,它最终会出现堆栈溢出异常 下面是代码示例C# 4.0 EF 4.1 POCO中递归加载的堆栈溢出,c#-4.0,entity-framework-4.1,C# 4.0,Entity Framework 4.1,我有一个EF 4.1 POCO等级,包括车辆和车主 当我加载VehicleOwner(包括车辆)时,车辆仍会加载VehicleOwner,当您使用映射器时,它最终会出现堆栈溢出异常 下面是代码示例 public class VehicleOwner : IVehicleOwner { [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity),ScaffoldColumn(false)] public int Veh
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>();
}
有什么方法可以防止这种递归循环吗
谢谢没有递归循环。车辆指向原始车主。这只是反向引用,只有在删除反向引用导航属性时才能避免。谢谢,我正在为poco设计映射程序,并且出现stackoverflow异常。我想我会回复automapper。谢谢你的评论。我现在正在使用AutoMapper,映射还可以,但是当从WCF返回映射的DTO时,我收到了以下错误消息-基础连接已关闭:连接意外关闭。感谢您的评论。我现在正在使用AutoMapper,映射正常,但是当从WCF返回映射的DTO时,我收到了以下错误消息-基础连接已关闭:连接意外关闭。谢谢你的评论。我现在正在使用AutoMapper,映射正常,但是当从WCF返回映射的DTO时,我收到了以下错误消息-基础连接已关闭:连接意外关闭。但是当我通过循环从WCF返回的值将车辆中的VehicleOwner更改为null时。