为了账号安全,请及时绑定邮箱和手机立即绑定

循环引用在将对象序列化为JSON时检测到异常

循环引用在将对象序列化为JSON时检测到异常

C#
蛊毒传说 2019-10-19 15:54:45
就像这篇文章中提到的那样,我在序列化实体框架代理时遇到了Json序列化错误:序列化类型为'System.Data.Entity.DynamicProxies.PurchaseOrder_446B939192F161CDBC740067F174F7A6059B0F9C0EEE68CD3EBBD63CF9AF5BD0'的对象时,检测到循环引用。但是不同之处在于,我的实体中没有循环引用,并且仅在我们的生产环境中发生。在本地,一切正常...我的实体:public interface IEntity{    Guid UniqueId { get; }    int Id { get; }} public class Entity : IEntity{    public int Id { get; set; }    public Guid UniqueId { get; set; }}public class PurchaseOrder : Entity{    public string Username { get; set; }    public string Company { get; set; }    public string SupplierId { get; set; }    public string SupplierName { get; set; }    public virtual ICollection<PurchaseOrderLine> Lines { get; set; }}public class PurchaseOrderLine : Entity{    public string Code { get; set; }    public string Name { get; set; }    public decimal Quantity { get; set; }}我的PurchaseOrderController上的GetCurrent操作引发异常:public class PurchaseOrderController : Controller{    private readonly IUnitOfWork _unitOfWork;    public PurchaseOrderController(IUnitOfWork unitOfWork)    {        _unitOfWork = unitOfWork;    }    public JsonResult GetCurrent()    {        return Json(EnsurePurchaseOrder(), JsonRequestBehavior.AllowGet);    }    private PurchaseOrder EnsurePurchaseOrder()    {        var company = RouteData.GetRequiredString("company");        var repository = _unitOfWork.GetRepository<PurchaseOrder>();        var purchaseOrder = repository                .Include(p => p.Lines)                .FirstOrDefault                (                    p => p.Company == company &&                          p.Username == User.Identity.Name                );        if (purchaseOrder == null)        {            purchaseOrder = repository.Create();            purchaseOrder.UniqueId = Guid.NewGuid();            purchaseOrder.Company = company;            purchaseOrder.Username = User.Identity.Name;            _unitOfWork.SaveChanges();        }        return purchaseOrder;    }}
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 605 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信