DbContext class in Asp.net MVC 5 with Identity 2.0
DbContext class in Asp.net MVC 5 with Identity 2.0
当您使用 Entity Framework 时,您需要有一个从 DbContext 派生的上下文 class。
Asp.net 身份使用 EF,默认模板创建以下 class:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
此 class 不直接 从 DbContext 派生。对于我自己的数据(我想保存到数据库的 classes)我应该创建自己的数据库上下文 class 吗?
如果我想执行一个操作来更新身份用户和我自己的 classes,我需要使用这两个上下文。所以这感觉不是很自然。
我是否也应该继续使用 ApplicationDbContext class 作为我自己的 class 的上下文?那行得通吗?
在使用身份时为我自己的 classes 使用 EF 的最佳方法是什么?
使用从 IdentityDbContext 继承的单个上下文 class。有关详细信息,请参阅 this answer。
您需要将所有 classes 的 DbSet 添加到 ApplicationDbContext 中。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", false)
{
}
//Public DBSets
public DbSet<LeaveApplication> LeaveApplications { get; set; }
public DbSet<LeaveStatus> LeaveStatus { get; set; }
public DbSet<Department> Departments { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
当您使用 Entity Framework 时,您需要有一个从 DbContext 派生的上下文 class。
Asp.net 身份使用 EF,默认模板创建以下 class:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
此 class 不直接 从 DbContext 派生。对于我自己的数据(我想保存到数据库的 classes)我应该创建自己的数据库上下文 class 吗?
如果我想执行一个操作来更新身份用户和我自己的 classes,我需要使用这两个上下文。所以这感觉不是很自然。
我是否也应该继续使用 ApplicationDbContext class 作为我自己的 class 的上下文?那行得通吗?
在使用身份时为我自己的 classes 使用 EF 的最佳方法是什么?
使用从 IdentityDbContext 继承的单个上下文 class。有关详细信息,请参阅 this answer。
您需要将所有 classes 的 DbSet 添加到 ApplicationDbContext 中。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", false)
{
}
//Public DBSets
public DbSet<LeaveApplication> LeaveApplications { get; set; }
public DbSet<LeaveStatus> LeaveStatus { get; set; }
public DbSet<Department> Departments { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}