0

私はEntity Framework 6テンプレートファイルを持っています。私は[XmlIgnore]public virtual ICollectionに含めたいので、シリアル化できません。XmlIgnore用のEntity Frameworkテンプレートファイル.ttを編集します。

このテンプレートファイルはデザイナークラスを生成します。デザイナークラスを編集すると、[XmlIgonre]を含むようにデザイナークラスを編集したくありません。テンプレートを編集して、public virtual ICollectionのすべての行に[XmlIgnore]属性が含まれるようにします。これに

<# 
     foreach (var navigationProperty in navigationProperties) 
     { 
      if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) 
      { 
#> 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
<# 
      } 
#> 
    <#=codeStringGenerator.NavigationProperty(navigationProperty)#> 
<# 
     } 
    } 
#> 

:あなたはこの(お使いのモデルのTTファイル内)を検索して編集する必要があります

+0

あなたはどこかにあなたが使用しているTTファイルを投稿することができますか? –

+0

@AkosNagy、私はttファイル全体を投稿することはできませんが、ここではXml <#@ include file = "EF.Reverse.POCO.ttinclude"#> <#@ import namespace = "System.Xmlのために使用されるコードがあります。スキーマ "#> <# } #> – BSave

+0

ttファイルはいくつかの場所で変更する必要がありますが、テンプレートが表示されている場合はどこにしか表示できません。 –

答えて

0

<# 
     foreach (var navigationProperty in navigationProperties) 
     { 
      if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) 
      { 
#> 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    [System.Xml.Serialization.XmlIgnore] 
<# 
      } 
#> 
    <#=codeStringGenerator.NavigationProperty(navigationProperty)#> 
<# 
     } 
    } 
#> 
関連する問題