コンテキスト:用いたナビゲーションプロパティ
- コードまず、Entity Frameworkの4.3.1。
- ユーザー----トピック、1 to Many relation;
User
public virtual ICollection<Topic> CreatedTopics
ナビゲーションプロパティ(レイジーロード)。Topic
public virtual User Creator
ナビゲーションプロパティ。DataServiceController : DbDataController<DefaultDbContext>
、Web APIベータ版、ASP.NET MVC 4ベータ版、シングルページアプリケーション。- Jsonシリアル化のためのSystem.Json;
- が
ウェブAPIアクション:
public IQueryable<Topic> GetTopics() { // return DbContext.Topics; // OK return DbContext.Topics.Include("Creator"); //With Exception }
結果:は
を "未処理のMicrosoft .NET Frameworkの例外がw3wp.exeの中で発生しました" ここでの問題はあると思われる:私がすべき両方のエンティティのナビゲーションプロパティを追加します(原因循環参照?)CreatedTopics
ナビゲーションプロパティをUser
クラスで削除すると、もう一度OKにしてください。
ので、上記のような同様のコンテキストでは、ここに私の質問は以下のとおりです。
- 多く関係に1の状況でナビゲーションプロパティをどのように扱いますか。
- さらに詳しい情報は多対多の関係、2つに分割する必要がありますか1 to manyリレーションシップ、
- ナビゲーションプロパティを使用する際のベストプラクティスと注意事項は何ですか?
私は多くの関連記事を読んで、しかしまだ十分明確ではないか:(、任意の助け
感謝を
ディーン
DataContractJsonSeriaizerは、Web APIベータ版のデフォルトJsonシリアライザですか? – Dean
私は 'DataContract(IsReference = true)'と 'DataMember'を一時的に使用しています。私はDTOオプションについても興味がありますが、今は実現できず、もっと時間を費やし、良い答えに感謝します。 – Dean