Breeze.js和PreserveReferencesHandling序列化失败

Breeze.js和PreserveReferencesHandling序列化失败,breeze,Breeze,使用breeze.js在客户端反序列化实体时遇到问题。 我的数据模型实体与其他实体具有一对多关系(A具有B的ICollection) 当我进行查询时,我看到从服务器返回的数据包括$ref=#,我知道breeze使用它来标识从服务器返回的相同对象。 但是在客户端,所有那些$ref=#的实体都没有被正确地反序列化,我使用了这个函数(){return mc.refMap[node]}来获取客户端的真实对象 以下是我的对象结构: public partial class Product {

使用breeze.js在客户端反序列化实体时遇到问题。 我的数据模型实体与其他实体具有一对多关系(A具有B的ICollection) 当我进行查询时,我看到从服务器返回的数据包括$ref=#,我知道breeze使用它来标识从服务器返回的相同对象。 但是在客户端,所有那些$ref=#的实体都没有被正确地反序列化,我使用了这个函数(){return mc.refMap[node]}来获取客户端的真实对象

以下是我的对象结构:

public partial class Product
    {        
        public Product()
        {            
            this.ProductCatalogue = new HashSet<ProductCatalogue>();
            this.DiameterRanges = new HashSet<DiameterRanges>();            
            this.Product_Children = new HashSet<Product>();
        }

        public int Id { get; set; }         
        public string Code { get; set; } 

        public virtual ICollection<ProductCatalogue> ProductCatalogue { get; set; }
        public virtual ICollection<DiameterRanges> DiameterRanges { get; set; }
        public virtual Product Product_Parent { get; set; }        
    }

    public partial class DiameterRanges
    {   
        public int Id { get; set; } 
        public double MinSPH { get; set; } 
        public double MaxSPH { get; set; } 
        public double MinCyl { get; set; } 
        public double MaxCyl { get; set; } 
        public short MinDiameter { get; set; } 
        public short MaxDiameter { get; set; } 
        public int Product_Id { get; set; } 

        public virtual Product Product { get; set; }
    }
公共部分类乘积
{        
公共产品()
{            
this.productCatalog=new HashSet();
this.DiameterRanges=新哈希集();
this.Product_Children=new HashSet();
}
公共int Id{get;set;}
公共字符串代码{get;set;}
公共虚拟ICollection ProductCatalog{get;set;}
公共虚拟ICollection DiameterRanges{get;set;}
公共虚拟产品产品\u父项{get;set;}
}
公共部分类直径范围
{   
公共int Id{get;set;}
公共双MinSPH{get;set;}
公共双MaxSPH{get;set;}
公共双MinCyl{get;set;}
公共双MaxCyl{get;set;}
公共短胸径仪{get;set;}
公共短最大直径{get;set;}
公共int乘积_Id{get;set;}
公共虚拟产品产品{get;set;}
}
在我的服务器端查询中没有什么特别之处:Context.Product.Include(“DiameterRanges”); 有没有办法解决这个问题


提前感谢….

您能在元数据中看到DiameterRanges类吗?好的,我使用fiddler对服务器返回的数据进行了一些调试。我在产品列表中看到返回的引用在主列表中不存在。假设我们有10种产品。例如,我看到列表中的第三个产品是$ref=12,而列表中没有$id=12的产品,所以我认为这就是问题所在,但是在服务器端查询中怎么会出现这种情况呢。