2017-09-13 48 views
0

我已经创建了一个ASP.NET MVC 5应用程序,使用个人用户帐户进行身份验证和SQL Server 2012 Express。EF数据优先与ASP.NET身份和MVC 5

该模板似乎工作。我可以创建帐户,管理我的用户帐户等。现在我想使用EF创建额外的表格供我的应用程序使用,但由于冲突类(如ApplicationDbContext {})正在创建中,所以我做了一些错误。

基本上,我有我的默认AspNet数据库表,我想在EF设计器中看到它。有一些我想添加到AspNetUsers表中的字段。

我这样做的方法是“添加项目”,然后选择“EF Designer from database”。

在EF Designer中包含默认AspNet *表而不生成初始ASP.NET模板创建的冲突类的方法是什么?我正在使用VS 2015社区。

回答

3

由于您使用的是标识,我不会使用“添加项目”选项对数据库进行任何更改。

要将新属性添加到ApplicationUser模型,请找到文件IdentityModels.cs。您应该看到类似于下面的内容。

public class ApplicationUser: IdentityUser 
{ 
    // add new properties here 
    public DateTime DateOfBirth { get; set; } 
} 

此文件也是您将放置新表格/模型的位置。

public class ApplicationDbContext: IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection", throwIfVlSchema: false) 
    public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 
    // Add new tables here 
    public DbSet<NewModel> NewModels { get; set; } 
} 

在做出任何更改之后,您将需要使用EF数据迁移将这些更改提交到数据库。

要安装迁移使用软件包管理器控制台,然后输入Enable-Migrations

要添加迁移类型add-migration [enter a description]

要提交到数据库类型update-database