Entity Frameworkコード4.1およびMVC3を使用してアプリケーションを開発中です。基本的にState => City => Localityという3つのエンティティがあります。循環参照が許可されていない - Jsonシリアル化
public class State {
public virtual List<City> Cities { get; set; }
}
public class City {
public virtual List<Locality> Localities { get; set; }
public virtual State State { get; set; }
}
public class Locality {
public virtual City City { get; set; }
}
私は、3つのエンティティすべてに対して双方向関係を使用していることがわかります。 Jsonはそれを許さないので、私はやや不満です。基本的には、どちらの方向にもナビゲートする必要があります。例えば、ある市が与えられた場合、私は自分が所属する州を容易に見つけることができるようにしたいと考えています。
私はウェブをスキャンし、いくつかの回避策を見つけましたが、どれも自分のシナリオに合っていません。最初は、関係を単方向にすることでした(誰がそれを行うのですか?)、私はそれを望んでいません。他のものは、必要なプロパティだけをViewModelに導入することでしたが、Entityのすべてのフィールドを定期的に使用する必要がある場合は、重複したコードを意味します。また、私のコントローラにはこれらのプロパティがあふれています。だから私はそれも好きではない。
これは単なる基本的なものだと思っていましたが、今は実現可能な解決策を見つけるのに苦労しています。誰かがより良い選択肢(おそらくMVC3の何か)を持っているなら、私を助けてください。
私はまだそれを実装していないが、私はJavascriptSerializerが良い方法だと思う。しかし、[ScriptIgnore]という属性があり、jsonがその属性が定義されている関係をナビゲートできなくなります。私はそれを広範囲にテストしていないが、現在はうまくいくようだ。私は.netコードで双方向にナビゲートすることができます。つまり、私は本当に双方向の関係にあります。 – Jatin