我一直在尝试在asp.NET MVC4中创建一个模拟小型游戏评论网站的迷你项目。没有什么了不起的事情,我只想了解工具和语言的不同方面。
目前我正在考虑创建一个数据库集以将Genres与ID相关联,因此当我创建游戏数据库集时,我可以通过相关类型引用游戏。我使用Code第一种方法来创建模型,但我不确定如何正确引用存储在虚拟集合中的类型,以便如果我创建基于Genre的表或基于Game的表,他们将参考正确。我只是学习这种MVC方法,所以如果我的术语关闭,我会道歉。
public class GamingModels : DbContext
{
public DbSet<Games> GameDb { get; set; }
public DbSet<Genre> GenreDb { get; set; }
public GamingModels()
: base("DefaultConnection")
{ }
public class Games {
public int ID { get; set; }
public string Title { get; set; }
public string Summary { get; set;}
public int Rating { get; set; }
public virtual ICollection<Genres> Genres { get; set; }
}
public class Genre {
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Games> Games { get; set; }
}
}
答案 0 :(得分:1)
你有一个中间表来映射游戏和流派吗?如果没有,你可以尝试这种方法:
覆盖OnModelCreating方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Games>().HasMany(x=> x.Genres)
.WithMany(x => x.Games)
.Map(x => x.MapLeftKey("ID").MapRightKey("ID").ToTable("Genre"));
modelBuilder.Entity<Genre>().HasMany(x => x.Games)
.WithMany(x => x.Genres)
.Map(x => x.MapLeftKey("ID").MapRightKey("ID").ToTable("Games"));
}
如果您有一张可以解析多对多的表格,请遵循Nogusta的建议。