我是开发ASP.NET应用程序的新手,我开始了一个新项目,我正在使用带有ODP和OLAC插件的Oracle DB.我设置了连接字符串,我可以在Server Explorer下看到数据库.
现在我希望Identity用户也可以存储在我的数据库中,但我现在无法找到它们存储的位置.app_data文件夹为空,任何地方都没有.mdf文件,我的连接字符串是Oracle连接字符串; 但是当我设置IdentityDBContext以使用我自己的连接字符串时,我得到一个错误,说"实体类型ApplicationUser不是当前上下文模型的一部分".我正在使用数据库优先方法:
这是我的数据库上下文的自动生成代码:
public partial class ActivoContext : DbContext
{
public ActivoContext()
: base("name=ActivoContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
......
Run Code Online (Sandbox Code Playgroud)
这是项目生成的身份代码,我刚刚更改了连接字符串:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("name=ActivoContext", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Run Code Online (Sandbox Code Playgroud)
web.config文件:
<connectionStrings>
<add name="ActivoContext" connectionString="metadata=res://*/Activo.csdl|res://*/Activo.ssdl|res://*/Activo.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=localhost:1521/xe;PASSWORD=activos;USER ID=ACTIVOS"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
编辑 所以我意识到问题是使用相同的连接字符串有两个不同的上下文.因此,只显示一个而另一个不起作用:自动生成的db-first ActivoContext显示而ApplicationDbContext不显示.我应该如何合并这两个或让它们一起工作?我无法修改DbContext导致其自动生成...