ASP.net MVC3 Razor EF
当我这样做时,它有效:
public ViewResult Index()
{
return View(db.Songs.Include("Artist").ToList());
}
但这不是:
public ViewResult Index()
{
return View(db.Artists.Include("Song").ToList());
}
我收到此错误:
指定的包含路径无效。 EntityType“MVCProject.Models.Artist”未声明名为“Song”的导航属性。
知道为什么吗?如果您需要更多信息/代码请提及哪些。但请告诉我这样的事情会发生什么,以及如何解决。它让我发疯了。
感谢。
艺术家课程:
public class Artist
{
public int ArtistID{ get; set; }
public string Name { get; set; }
public IQueryable<Song> Songs{ get; set; }
}
答案 0 :(得分:2)
将public IQueryable<Song> Songs{ get; set; }
替换为public virtual ICollection<Song> Songs{ get; set; }
public class Artist
{
public int ArtistID{ get; set; }
public string Name { get; set; }
public virtual ICollection<Song> Songs{ get; set; }
}
然后
return View(db.Artists.Include("Songs").ToList());
答案 1 :(得分:0)
你可能有歌曲(复数)作为Artist类的导航属性。所以,return View(db.Artists.Include("Songs").ToList());
应该有效。如果不是 - 您需要显示艺术家的模型类