2009-09-11 61 views

回答

117

我使用ScriptIgnore屬性上我的模型像這樣:

public class Item 
{ 
    [ScriptIgnore] 
    public Item ParentItem { get; set; } 
} 

在此特定情形,我從JSON序列得到一個循環引用錯誤,所以我只是忽略了它。當我打開Model和ViewModel的區別時,我是asking a similar question here on SO

+1

如果它不是POCO而是生成的EntityModel,我不想編輯生成的代碼,是否有將ScriptIgnore屬性添加到生成的實體模型的解決方法。 – hazimdikenli 2010-11-11 10:09:36

+0

@hazimdikenli你可能不得不利用部分類爲此。 – 2011-08-05 16:18:33

+11

不要忘了添加一個對「System.Web.Extensions」的引用來使其工作 – Levitikon 2011-09-14 23:34:51

26
[ScriptIgnore] 

是你的小手指。

+4

+1對於墓碑參考。 – jrummell 2009-09-11 15:40:49

+1

它實際上是「Huckle Bearer」,但我會給你+1和電影。 :) – 2012-08-31 03:22:45

+8

原來的答案是正確的,他說「哈克貝利」,而不是「哈克持票人」。 http://www.imsdb.com/scripts/Tombstone.html – heisenberg 2013-04-22 18:24:11

2

您只需將 [ScriptIgnore(ApplyToOverrides = true)]添加到您的文本模板(.tt)文件中。

這裏我的文字模板

#> 
<#=codeStringGenerator.NavigationProperty(navigationProperty)#> 
<# 

一旦我插入產生的codeStringGenerator上面的線我的班級自動的代碼,看起來像在此之前的部分:

[ScriptIgnore(ApplyToOverrides = true)] 
public virtual ICollection<Currency> Currencies { get; set; } 

我還需要修改要插入的UsingDirectives函數"using System.Web.Script.Serialization;"

+0

'ApplyToOverrides'似乎對虛擬財產非常重要 – Todd 2016-09-13 04:08:47

1

將屬性設置爲內部屬性。雖然,取決於你的結構。考慮到。