不能像'System.Data.Entity.DbSet'那样播种数据

时间:2014-12-15 13:29:22

标签: asp.net-mvc entity-framework ef-migrations

我刚开始一个新的MVC 5 EF 6项目,并添加了一个简单的模型:

public class Team
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int TeamNo { get; set; }
    public string Name { get; set; }
   }

然后按照以下步骤操作: - 构建解决方案 - 添加ScaffoldedItem - 启用 - 迁移 - add-migration initial-create - 添加了种子数据:

    var teams new List<Team>
    {
        new Team { TeamNo = 2600, Name = "C" },
        new Team { TeamNo = 4000, Name = "VB" }
    };
    teams.ForEach(c => context.Teams.Add(c));
    context.SaveChanges();
  • update-database

这按预期工作。

然后我添加了第二个模型(与Shop有1-1关系):

public class Shop
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ShopNo{ get; set; }
    public shopFormat ShopFormat { get; set; }
    public string Purpose { get; set; }
    public int TeamNo { get; set; }
    public string Description { get; set; }
}

然后我执行了相同的EF步骤: - 构建解决方案 - 添加ScaffoldedItem - 添加迁移商店

然后,当我尝试在配置中输入种子数据时,Intellisense不会拾取Shop属性。我可以输入:

var shops = new List<Shop>
{
new Shop { }
};

但是当我输入ShopNo = 1010时,我收到错误:project.Migrations.Shop不包含'ShopNo'的定义。

配置文件包括: 使用System.Data.Entity.Migrations;

任何人都可以帮助我,因为我拉着头发试图理解我做错了什么或出错了。

亲切的问候 克雷格

1 个答案:

答案 0 :(得分:0)

我已经修复了它,删除了Migrations文件夹,删除了App_Data / Database文件,然后重复了迁移步骤。