2016-03-09 72 views
0

我有一個對象,我需要序列化並返回到我的JavaScript。我的目標是這樣的:JsonConvert PreserveReferencesHandling.None not working

public class Book 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public List<Publisher> AssociatedPublisher { get; set; } 
    public List<Publisher> NonAssociatedPublisher { get; set; } 
} 

如果我填充這兩個AssociatedPublisherNonAssociatePublisher一個,並在列表中的相同Publisher然後我做

var b = JsonConvert.SerializeObject(book, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None }); 

當我檢查var b它始終擁有NonAssociatedPublisher連載作爲:

NonAssociatedPublisher 
    | 
    |-----[0] 
      | 
      |----$ref: "3" 

我想要的是完整的對象,而不僅僅是參考。看來PreserveReferencesHandling.None沒有工作,或者我誤解了它的用法?

回答

0

對不起,我必須回答我自己的問題。問題是AssociatedPublisherNonAssociatedPublisher都來自EF並且它們被標記(IsReference = true)。

我想出的解決方案是爲我自己的班級製作AssociatedPublisherNonAssociatedPublisher,而不是使用EF的。