ASP.NET MVC 3音乐商店教程

时间:2014-03-18 07:52:30

标签: c# asp.net-mvc entity-framework asp.net-mvc-4

我正在使用MVC音乐商店教程应用程序。 我已经更改了应用程序的3个原始类名(重命名),即Genre,Album和Artist,并分别将它们命名为Categories,Brands和Types。

我已经更新了所有参考资料。所以在此之后,我所拥有的是相同的应用程序和数据库值,但我想要的是NAMES。

在作为种子类的 SampleData.cs 中,当我按照我的要求向列表添加新值时,我没有看到任何更改反映在数据库中以及运行应用程序时再次显示相同的值。

MY SEED CLASS CODE SNIPPET(仅限类别)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcMusicStore.Models
{
    public class SampleData : DropCreateDatabaseIfModelChanges<MusicStoreEntities>
    {
        protected override void Seed(MusicStoreEntities context)
        {
            var genres = new List<Categories>
            {
               new Categories { Name = "Guitars" },
               new Categories { Name = "Keyboards" },
               new Categories { Name = "Drums" },
               new Categories { Name="Amplifiers"}

            };

输出正在显示:

岩石
古典
爵士
流行的 迪斯科
拉丁
金属
替代 雷鬼
布鲁斯

等等。

另外我想在EF Code第一种方法中对种子数据的更改会动态反映在它所连接的数据库中(数据库连接工作正常)

请在这里需要一些指导。 提前致谢

1 个答案:

答案 0 :(得分:1)

您需要将种子数据添加到数据库上下文中:

protected override void Seed(MusicStoreEntities context)
{        
    context.Categries.Add(new Categories { Name = "Guitars" });
    context.Categries.Add(new Categories { Name = "Keyboards" });
    context.Categries.Add(new Categories { Name = "Drums" });
    context.Categries.Add(new Categories { Name="Amplifiers"});

    base.Seed(context);
}