EntityFramework 6 - 创建表格?

时间:2016-05-19 14:40:23

标签: c# entity-framework visual-studio

我已经开始了一个由Azure托管的新项目 - 我试图让它自动创建表。

我有一个模特:

 public class Account
{
    [Key]
    [Required]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Surname { get; set; }
    [Required]
    [EmailAddress]
    public string Email { get; set; }
}

在我的Global.asax中:

Database.SetInitializer(new CreateDatabaseIfNotExists<ApplicationDbContext>());

最后是ApplicationDbContext:

public class ApplicationUser : IdentityUser
{
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string authenticationType)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
        // Add custom user claims here
        return userIdentity;
    }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

    public System.Data.Entity.DbSet<Account> Accounts { get; set; }
}

运行我的项目后,它不会创建表。或者我做错了什么我没看到?

2 个答案:

答案 0 :(得分:1)

我相信您首先必须更新您的数据库。

在您的程序包管理器控制台中尝试此操作。

PM> Add-Migration UpdateName

它应该创建一个包含所有更改的新文件。仔细检查文件以确保它了解您尝试实现的目标。然后:

PM> Update-Database

此命令执行迁移。现在应该已经创建了新表。

答案 1 :(得分:1)

@ user3435421 是的,我认为这是正确的做法。我唯一可以添加的是原始海报需要在他/她调用Add-Migration命令之前使用 enable-migrations 命令启用迁移。您可以在此处找到与Contoso University示例相关的过程:http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application