0

StackOverflowからのアドバイスに従い、循環参照の問題を解決するために、以下のコードを使用してdbContextでProxyCreationをオフにしました。

_dbcontext.Configuration.ProxyCreationEnabled = false;

それをオフにした後、Jsonシリアル化は循環参照を解決することが期待されていた私の関連タイプのnullを返しますが、それでも特定のタイプが必要な場合はどうなりますか?たとえば、EntityChildからEntityParentTypeにアクセスできます

EntityChild.EntityParentType(データベースでは外部キー関係、EntityParenetTypeIdとして関連付けられています)。

.Include( "EntityParentType")を試しましたが、循環参照の問題が再び発生します。これを行う正しい方法は何ですか?

    var result = from entry in EntityChild.Include("EntityParentType")
                 where entry.EntityParentTypeId == 1 
                 select entry;

編集:ViewModelを使用することは、この循環参照の問題を解決するための最良のオプションですか?http://garfbradazweb.wordpress.com/2011/09/22/mvc-3-entity-framework-and-serializing-jsoncircular-references/

4

1 に答える 1

1

ScriptIgnore属性を使用して、シリアル化で親または子を無視できます。

public class Entity
{
    [ScriptIgnore]
    public Item ChildEntity { get; set; }
}
于 2013-03-18T03:46:29.007 に答える