语境:
- 代码优先,实体框架 4.3.1;
- 用户----主题,1对多关系;
User
带有public virtual ICollection<Topic> CreatedTopics
导航属性(延迟加载);Topic
带有public virtual User Creator
导航属性;DataServiceController : DbDataController<DefaultDbContext>
, Web API beta, ASP.NET MVC 4 Beta , 单页应用程序;- System.Json 用于 Json 序列化;
Web API 操作:
public IQueryable<Topic> GetTopics() { // return DbContext.Topics; // OK return DbContext.Topics.Include("Creator"); //With Exception }
结果:“w3wp.exe 中出现未处理的 microsoft .net 框架异常”
这里的问题似乎是:我不应该在两个实体中添加导航属性(导致循环引用?),如果我删除类中的CreatedTopics
导航属性User
,它会再次正常。
因此,在上面列出的类似上下文中,这是我的问题:
- 1对多关系的情况下如何处理Navigation Properties ;
- 此外,多对多关系怎么样,我必须将它分成两个1 对多关系吗?
- 使用导航属性的最佳实践和注意事项是什么?
我已经阅读了许多相关的帖子,但仍然不够清楚:(,
谢谢你的帮助!
院长