[英]asp.Net MVC4 having two database entities reference one another
我一直試圖在asp.NET MVC4中創建一個迷你項目,該項目模仿一個小型游戲評論網站。 我只想了解工具和語言的不同方面,沒有什么壯觀的事情。
目前,我正在考慮創建一個數據庫集,以將流派與ID相關聯,因此,當我創建游戲數據庫集時,可以按相關流派引用游戲。 我使用的是“代碼優先”方法來創建模型,但是我不確定如何正確引用虛擬集合中存儲的流派,因此,如果我基於流派創建表或基於游戲創建表,它們將正確引用。 我只是在學習這種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; }
}
}
您是否有一個中間表來映射游戲和流派? 如果沒有,您可以嘗試以下方法:
重寫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的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.