2017-11-11 1 views
0

wcf 서비스로 모델을 보내려고합니다. 먼저 내가 직렬화 문제가 있었다하지만 난Entity Framework 4.0 모델이 모든 데이터를 가져 오지 않습니다.

ContextOptions.ProxyCreationEnabled = false; 

참조 자 DataContractSerializer Error using Entity Framework 4.0 with WCF 4.0 하지만 지금은 모델 속성 세금 및 제품을 설정하여 그것을 해결에

public ClientWindowViewModel() 
    { 
     Ip = ServerWindowViewModel.LocalIP; 
     db = new STOREDBEntities(); 
     db.Configuration.ProxyCreationEnabled = false; 
     products = db.Products;//.Where(p => p.IsSynced == false) 
    } 

제품 모델

public partial class Product 
    { 
     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
     public Product() 
     { 
      this.Categories = new HashSet<Category>(); 
     } 

     public int Id { get; set; } 
     public string ProductName { get; set; } 
     public byte[] Image { get; set; } 
     public bool IsDeleted { get; set; } 
     public bool IsSynced { get; set; } 

     [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
     public virtual ICollection<Category> Categories { get; set; } 
     public virtual Tax Tax { get; set; } 
    } 

보내기 null의 WCF 서버

channel.Update(checkedProducts); 

답변

0

내가 틀렸다면 WCF 계약으로 Product 클래스를 보내고 보내기 후에 null과 기본값 만 가져옵니다.

Product 클래스의 [DataContract], [DataMember]와 같은 적절한 주석을 설정하지 않고 WCF로 개체를 보낼 수 없습니다.

클래스 위에 [DataContract]를 설정하고 각 속성 위에 [DataMember]를 설정하십시오. 이 메시지가 없으면 메시지가 제대로 직렬화되지 않습니다. 내가 세금 을

ContextOptions.ProxyCreationEnabled = false; 

그것은 수행을 설정하지 않는 제품과를 얻을 수 있어요 때 문제가 WCF.The 문제가 아니라고

+0

예. 내가 대답을 찾을 위의 그것을 :) –

0

I 기금은 내가 그것을

Products = dbGet.Products.Include("Categories").Include("Tax").ToList(); 
등을위한 .Include("PropertyName") 쓰기 있어야합니다

하지만 내가 서버에 목록을 보내려고 할 때 .Include("PropertyName") 메서드를 추가 할 때 예외가 발생합니다그리고 나는 누군가가 자전거를 적어주세요 않도록 설정하는 방법에 대한 더 나은 솔루션을 알고 있다면

foreach (var item in products) 
     { 
      foreach (var ct in item.Model.Categories) 
      { 
       ct.Products = null; 
      } 
      item.Model.Tax.Product = null; 
     } 

를 null로 자전거 instacnes 설정과 그것을 해결!

관련 문제