環境:
- Code First、Entity Framework 4.3.1。
- ユーザー ---- トピック、1対多の関係。
User
withpublic virtual ICollection<Topic> CreatedTopics
Navigation プロパティ (遅延読み込み);Topic
public virtual User Creator
ナビゲーション プロパティを使用。DataServiceController : DbDataController<DefaultDbContext>
、Web API ベータ版、ASP.NET MVC 4 ベータ版、シングル ページ アプリケーション。- Json シリアライゼーション用の System.Json。
Web API アクション:
public IQueryable<Topic> GetTopics() { // return DbContext.Topics; // OK return DbContext.Topics.Include("Creator"); //With Exception }
結果: 「未処理の Microsoft .net フレームワーク例外が w3wp.exe で発生しました」
ここでの問題は次のように思われます:両方のエンティティにナビゲーション プロパティを追加CreatedTopics
するべきではありません (循環参照が原因ですか?)。また、クラスのナビゲーション プロパティを削除すると、User
再び OK になります。
したがって、上記のような同様のコンテキストで、ここに私の質問があります:
- 1 対多の関係でナビゲーション プロパティを処理する方法。
- さらに、多対多の関係はどうですか。それを 2 つの1 対多の関係に分割する必要がありますか。
- ナビゲーション プロパティを使用する際のベスト プラクティスと注意事項は何ですか?
私は多くの関連記事を読みましたが、まだ十分に明確ではありません:(、
助けてくれてありがとう!
ディーン