我有一個Web API與本地數據庫,我使用我的數據庫模型創建了控制器。在我有外鍵的所有類模型中,我都不斷收到這個錯誤。'ObjectContent'類型無法序列化
類型 'System.Data.Entity.DynamicProxies.Product_9B61A36C2BD0C13AA03EB8B09F2678CB0976D5E84057A4447E1FAF98EBDB7865' 數據合同名稱 'Product_9B61A36C2BD0C13AA03EB8B09F2678CB0976D5E84057A4447E1FAF98EBDB7865:http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies' 預計不會。如果使用DataContractSerializer,則考慮使用DataContractResolver,或者將未知的任何類型靜態添加到已知類型列表中 - 例如,使用KnownTypeAttribute屬性或將它們添加到傳遞給序列化程序的已知類型列表中。
我嘗試使用[DataContract],[KnownType ..]和[數據成員]但它一直得到這個錯誤。你知道我必須做什麼嗎?
這是我的班級代碼之一:
namespace WholesaleRetailProject
{
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
[KnownType(typeof(Category))]
[KnownType(typeof(ProductExport))]
[DataContract]
public partial class Product
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Product()
{
this.ProductExport = new HashSet<ProductExport>();
}
public int ProductID { get; set; }
public int ProductCode { get; set; }
public string ProductName { get; set; }
public double ProductSellPrice { get; set; }
public int ProductCategoryID { get; set; }
public int ProductStock { get; set; }
[DataMember]
public virtual Category Category { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
[DataMember]
public virtual ICollection<ProductExport> ProductExport { get; set; }
}
'ProductExport'是您定義的類嗎? –
此外,還有一個有用的快捷方式,因此您不必構造一個構造函數:'public virtual ICollection ProductExport {get;組; } = new HashSet ();' –