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