c# - 我运行网站时没有显示我的流派
问题描述
我正在创建一个使用 MVC 音乐商店作为指南的在线音乐商店。
该指南在一个类中使用实体框架和种子数据。
当我运行网站并导航到“商店”时,我的音乐流派没有出现。
这是我的流派课程:
public partial class Genre
{
public int GenreId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Album> Albums { get; set; }
}
这是我的实体框架数据库上下文:
public class MusicStoreEntities : DbContext
{
public MusicStoreEntities()
: base("name=MusicStoreEntities")
{
}
public DbSet<Album> Albums { get; set; }
public DbSet<Genre> Genres { get; set; }
}
}
这是我的商店控制器:
public class StoreController : Controller
{
MusicStoreEntities storeDB = new MusicStoreEntities();
//
// GET: /Store/
public ActionResult Index()
{
var genres = storeDB.Genres.ToList();
return View(genres);
}
//
// GET: /Store/Browse
//
// GET: /Store/Browse?genre=Disco
public ActionResult Browse(string genre)
{
var genreModel = new Genre { Name = genre };
return View(genreModel);
}
//
// GET: /Store/Details/5
public ActionResult Details(int id)
{
var album = new Album { Title = "Album " + id };
return View(album);
}
}
}
这是我的种子数据:
public class MusicData : DropCreateDatabaseIfModelChanges<MusicStoreEntities>
{
protected override void Seed(MusicStoreEntities context)
{
var genres = new List<Genre>
{
new Genre { Name = "Rock" },
new Genre { Name = "Jazz" },
new Genre { Name = "R&B" },
new Genre { Name = "Alternative" },
new Genre { Name = "Reggae" },
new Genre { Name = "Blues" },
new Genre { Name = "Latin" },
new Genre { Name = "Reggae" },
new Genre { Name = "Pop" },
new Genre { Name = "Hip Hop" }
};
var artists = new List<Artist>
{
new Artist { Name = "Arthur Verocai" },
new Artist { Name = "Free Nationals" },
new Artist { Name = "Marvin Gaye" },
new Artist { Name = "Thundercat" },
new Artist { Name = "Nas" },
new Artist { Name = "D'Angelo" },
new Artist { Name = "Bob Marley" },
new Artist { Name = "Freddie Gibbs" },
new Artist { Name = "Solange Knowles" },
new Artist { Name = "Kendrick Lamar" },
new Artist { Name = "Madvillain" },
new Artist { Name = "Prince" },
new Artist { Name = "Hector Lavoe" },
new Artist { Name = "Wayne Shorter" },
new Artist { Name = "Muddy Waters" },
new Artist { Name = "howlin wolf" },
new Artist { Name = "Jamiroquai" },
new Artist { Name = "Barrington Levy" },
new Artist { Name = "Stevie Wonder" },
new Artist { Name = "Jimi Hendrix" },
new Artist { Name = "Pink Floyd" },
new Artist { Name = "Outkast" },
new Artist { Name = "Jay-Z" },
new Artist { Name = "The Internet" },
new Artist { Name = "Lupe Fiasco" },
new Artist { Name = "Tyler, The Creator " }
};
new List<Album>
{
new Album { Title = "Arthur Verocai", Genre = genres.Single(g => g.Name == "Latin"), Price = 25.99M, Artist = artists.Single(a => a.Name == "Arthur Verocai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "No Voo do Urubu", Genre = genres.Single(g => g.Name == "Latin"), Price = 31.99M, Artist = artists.Single(a => a.Name == "Arthur Verocai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Free Nationals", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Free Nationals"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "I Want You", Genre = genres.Single(g => g.Name == "R&B"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Let's Get It On", Genre = genres.Single(g => g.Name == "R&B"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "What's Going On ", Genre = genres.Single(g => g.Name == "R&B"), Price = 11.99M, Artist = artists.Single(a => a.Name == "Marvin Gaye"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "It Is What It Is", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Thundercat"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Drunk", Genre = genres.Single(g => g.Name == "Alternative"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Thundercat"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "It Was Written", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nas"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Life Is Good", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.99M, Artist = artists.Single(a => a.Name == "Nas"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Brown Sugar", Genre = genres.Single(g => g.Name == "R&B"), Price = 21.99M, Artist = artists.Single(a => a.Name == "D'Angelo"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Voodoo", Genre = genres.Single(g => g.Name == "R&B"), Price = 22.99M, Artist = artists.Single(a => a.Name == "D'Angelo"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Legend", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Uprising", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Exodus", Genre = genres.Single(g => g.Name == "Reggae"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Bob Marley"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Bandana", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 8.98M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Pinata", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Freddie", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Freddie Gibbs"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "A Seat at the Table ", Genre = genres.Single(g => g.Name == "R&B"), Price = 18.99M, Artist = artists.Single(a => a.Name == "Solange Knowles"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "When I Get Home ", Genre = genres.Single(g => g.Name == "R&B"), Price = 19.99M, Artist = artists.Single(a => a.Name == "Solange Knowles"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "To Pimp A Butterfly", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 29.99M, Artist = artists.Single(a => a.Name == "Kendrick Lamar"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Damn", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 29.99M, Artist = artists.Single(a => a.Name == "Kendrick Lamar"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Madvillainy", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Madvillain"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Prince", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "HITNRUN Phase Two", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = " Purple Rain", Genre = genres.Single(g => g.Name == "Pop"), Price = 27.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Sign O The Times", Genre = genres.Single(g => g.Name == "Pop"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Prince"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "De Ti Dipende", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "La Voz", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Comedia", Genre = genres.Single(g => g.Name == "Latin"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Hector Lavoe"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Speak No Evil ", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Night Dreamer", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Juju", Genre = genres.Single(g => g.Name == "Jazz"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Wayne Shorter"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Hoochie Coochie Man", Genre = genres.Single(g => g.Name == "Blues"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Muddy Waters"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Muddy Waters At Newport ", Genre = genres.Single(g => g.Name == "Blues"), Price = 17.99M, Artist = artists.Single(a => a.Name == "Muddy Waters"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Moanin In The Moonlight ", Genre = genres.Single(g => g.Name == "Blues"), Price = 16.99M, Artist = artists.Single(a => a.Name == "howlin wolf"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Travelling Without Moving", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Synkronized", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Return Of The Space Cowboy", Genre = genres.Single(g => g.Name == "Pop"), Price = 16.99M, Artist = artists.Single(a => a.Name == "Jamiroquai"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Acousticalevy", Genre = genres.Single(g => g.Name == "Reggae"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Barrington Levy"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Here I Come by Barrington Levy", Genre = genres.Single(g => g.Name == "Reggae"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Barrington Levy"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Songs in the Key of Life", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Innervisions", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Talking Book (Remastered)", Genre = genres.Single(g => g.Name == "R&B"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Stevie Wonder"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Electric Ladyland", Genre = genres.Single(g => g.Name == "Rock"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Jimi Hendrix"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Band Of Gypsys", Genre = genres.Single(g => g.Name == "Rock"), Price = 15.99M, Artist = artists.Single(a => a.Name == "Jimi Hendrix"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "The Dark Side of the Moon", Genre = genres.Single(g => g.Name == "Rock"), Price = 21.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "The Wall", Genre = genres.Single(g => g.Name == "Rock"), Price = 31.99M, Artist = artists.Single(a => a.Name == "Pink Floyd"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Aquemini", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Outkast"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "ATLiens", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 23.99M, Artist = artists.Single(a => a.Name == "Outkast"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "The Blueprint", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 22.99M, Artist = artists.Single(a => a.Name == "Jay-Z"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Feel Good", Genre = genres.Single(g => g.Name == "Alternative"), Price = 22.99M, Artist = artists.Single(a => a.Name == "The Internet"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Ego Death", Genre = genres.Single(g => g.Name == "Alternative"), Price = 22.99M, Artist = artists.Single(a => a.Name == "The Internet"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Lupe Fiasco's Food & Liquor ", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Lupe Fiasco"), AlbumArtUrl = "/Content/Images/placeholder.gif" },
new Album { Title = "Wolf ", Genre = genres.Single(g => g.Name == "Hip Hop"), Price = 38.99M, Artist = artists.Single(a => a.Name == "Tyler, The Creator "), AlbumArtUrl = "/Content/Images/placeholder.gif" },
}.ForEach(a => context.Albums.Add(a));
}
}
}
这是该视图的 Index.cshtml 代码:
@model IEnumerable<WaxLoversOnline.Models.Genre>
@{
ViewBag.Title = "Store";
}
<h3>Browse Genres</h3>
<p>
Select from @Model.Count()
genres:
</p>
<ul>
@foreach (var genre in Model)
{
<li>
@Html.ActionLink(genre.Name,
"Browse", new { genre = genre.Name })
</li>
}
</ul>
当我运行程序时,我没有收到任何错误。我对使用 C# 比较陌生。任何帮助将不胜感激。
解决方案
您需要像下面这样添加System.Data.Entity.Database.SetInitializer(new MusicData());
。Application_Start()
参考https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-4#adding-our-store-catalog-data
protected void Application_Start()
{
// Add below line
System.Data.Entity.Database.SetInitializer(new MusicData());
// Your code
}
推荐阅读
- javascript - 使用 node.js 创建文件夹,文件
- python - 如何避免 Python I/O 操作对 YAML 文件中的信息进行自动排序?
- c# - 如何在实体框架中为 DatabaseGeneratedOption Identity 生成顺序增量 id
- java - 服务在 Grails 3.3.0 中的线程中运行
- javascript - 优化 Google Apps 脚本中的 for-loop 函数(可能是数组)?
- angular - Google 折线图“dragToZoom”属性在版本 45 上不起作用
- c# - 在 .dll 中发送配置
- html - 如何让边框正常工作html
- python - 如何在 python 中以递增/递减顺序更正列表的值
- c# - 当可以从用户对象中提取所需的属性时,像 GetPhoneNumberAsync(IdentityUser user) 这样的 UserManager 方法的目的是什么?