我有两个对象的模型: 项目和词汇有很多很多关系。
public class Project
{
public int Id { get; set; }
public List<ProjectWord> ProjectWords { get; set; }
}
public class ProjectWord
{
[Key, ForeignKey("Project"), Column(Order = 0)]
public int project_Id { get; set; }
[Key, ForeignKey("Word"), Column(Order = 1)]
public int word_Id { get; set; }
public Project Project { get; set; }
public Word Word { get; set; }
}
和
public class Word
{
public int Id { get; set; }
public string WordContent { get; set; }
public List<ProjectWord> ProjectWords { get; set; }
}
我正在使用webapi 2和EF 6
我的控制器得到的是:
[ResponseType(typeof(Project))]
public IHttpActionResult GetProject(int id)
{
Project project = db.Projects.Find(id);
if (project == null)
{
return NotFound();
}
return Ok(project);
}
当我调用它时,它返回我的项目实体,但它的ProjectWords始终为null。 (我在数据库中有数据)。
尝试在我的上下文构造函数中禁用延迟加载
public KwToolsServerContext() : base("name=KwToolsServerContext")
{
Configuration.LazyLoadingEnabled = false;
Configuration.ProxyCreationEnabled = false;
}
但没有任何帮助。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
您是否尝试过急切地加载实体?如下所示:
db.Projects
.Include(x => x.ProjectWords)
.Include(x => x.ProjectWords.Select(y => y.Word))
.Where(x => x.Id == id)