【发布时间】:2012-07-03 16:33:48
【问题描述】:
上下文:
- 代码优先,实体框架 4.3.1;
- 用户----主题,一对多关系;
-
User和public virtual ICollection<Topic> CreatedTopics导航属性(延迟加载); -
Topic和public virtual User Creator导航属性; -
DataServiceController : DbDataController<DefaultDbContext>,Web API 测试版,ASP.NET MVC 4 测试版,单页应用程序; - System.Json 用于 Json 序列化;
-
Web API 操作:
public IQueryable<Topic> GetTopics() { // return DbContext.Topics; // OK return DbContext.Topics.Include("Creator"); //With Exception } 结果:“w3wp.exe 中出现未处理的 microsoft .net 框架异常”
这里的问题似乎是:我不应该在两个实体中添加导航属性(导致循环引用?),如果我删除 User 类中的 CreatedTopics 导航属性,它会再次好的。
所以,在上面列出的类似上下文中,这是我的问题:
- 一对多关系的情况下如何处理Navigation Properties;
- 更进一步,多对多关系怎么样,我必须把它分成两个1对多关系吗?
- 使用导航属性的最佳做法和注意事项是什么?
我已经阅读了很多相关的帖子,但仍然不够清楚:(,
感谢您的帮助!
院长
【问题讨论】:
标签: entity-framework-4 ef-code-first asp.net-web-api navigation-properties