在MVC 5中,模型文件夹中有一个新的Identity Class。假设我向用户添加一些附加字段,我会在该类中进行如下操作:
```public class ApplicationUser : IdentityUser```
好的,到目前为止还不错。我运行 ```add-migration "updatedUser"```,这将更新数据库。
但是,现在我想添加一个Products、Client和Company Table。一些ASP.NET教程和Azure教程实际上让我在ApplicationDbContext类中设置每个Table的getter和setter:
```public class ApplicationUser : IdentityUser```
好的,到目前为止还不错。我运行 ```add-migration "updatedUser"```,这将更新数据库。
但是,现在我想添加一个Products、Client和Company Table。一些ASP.NET教程和Azure教程实际上让我在ApplicationDbContext类中设置每个Table的getter和setter:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public DbSet<Product> Products { get; set; }
public DbSet<Client> Clients { get; set; }
public DbSet<Company> Companies { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
但我认为您不希望从IdentityDbContext继承,而是在models文件夹中设置一个名为:
DatabaseContext.cs
(用于非用户/身份表)
并进行以下操作:
using MyProject.Domain.Entities;
using System.Data.Entity;
namespace MyProject.Models {
public class DatabaseContext : DbContext
: base("DefaultConnection")
{
}
public DbSet<Product> Products { get; set; }
public DbSet<Client> Clients { get; set; }
public DbSet<Company> Companies { get; set; }
}
这是最佳实践还是我应该使用身份类?有关系吗?