我问了一个类似的问题here,但这是另一个问题,假设我们有以下模型:
public class Genre {
public int Id { get; set; }
public string Title { get; set; }
public ICollection<Artist> Artists { get; set; }
}
public class Artist {
public int Id { get; set; }
public string Name { get; set; }
public ICollection<int> GenreID { get; set; }
public ICollection<Genre> Genres { get; set; }
}
public class MusicNtoOneDB : DbContext {
public DbSet<Artist> Artists { get; set; }
public DbSet<Genre> Genres { get; set; }
}
我很有意思每个艺术家可以有一个或一些类型,EFCodefirst数据库类似于:
但是在自动生成的视图中,艺术家和流派之间没有任何关系,例如我希望创建艺术家的视图可以为新艺术家选择流派,有没有办法实现它?我知道我们可以手工实现视图,但我很自豪,自动生成的视图已经是Genre和Artist之间的关系
答案 0 :(得分:2)
Scott Hanselman展示了一些Mvc Scaffolding功能,包括模型关系 http://channel9.msdn.com/events/mix/mix11/key01#time=0h40m45s 你可能会发现它很有用
答案 1 :(得分:0)
我不确定它能否为N:M关系做到这一点(如图所示,如果你从NuGet下载新的MVC 3工具版本,至少可以用于1:N关系)。
N:M关系,非常棘手。如果你有很多这样的关系,你可以做的是创建一个HTMLHelper或一个部分视图,它将获取一个导航属性(假设a =&gt; a.Genres)并创建一个允许更改映射的列表(在在这种情况下,添加与新流派的匹配或删除现有流派。)