【发布时间】:2018-10-26 21:51:43
【问题描述】:
我使用 Asp.Net Core WebApi 项目。
我可以将我的表添加到 IdentityDbContext,如下所示:
public class ApplicationDbContext : IdentityDbContext<User>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
public DbSet<ProgrammerRole> ProgrammerRoles { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<SubProject> SubProjects { get; set; }
public DbSet<Report> Reports { get; set; }
}
或者我是否需要创建第二个 DbContext。如果我创建第二个 DbContext 我如何在 IdentityDbContext 中与用户交流。
我的第二个问题: 如果我在 IdentityDbContext 中添加数据,如上所示,如何从 ApplicationDbContext 中的表中获取数据? 因为我每次创建 ApplicationDbContext 的新实例时都需要传递 DbContextOptions 对象。我在 Startup.cs 中执行此操作:
// ===== Add DbContext ========
var connectionString = Configuration.GetConnectionString("DbConnection");
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
我在旧版本的 Asp.Net Core 中看到,我可以在 IdentityDbContext 构造函数中传递连接字符串,但现在只能传递 DbContextOptions。 而我做不到,例如这个:
[AllowAnonymous]
[HttpGet]
public IEnumerable<Project> GetRoles()
{
using (var db = new ApplicationDbContext())
{
return db.Projects;
}
}
【问题讨论】:
标签: asp.net asp.net-core entity-framework-6 asp.net-identity entity-framework-core