Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在具有相同上下文的同一数据库中使用ASP.NET标识两次_Entity Framework_Asp.net Core Mvc_Asp.net Identity_Entity Framework Core - Fatal编程技术网

Entity framework 在具有相同上下文的同一数据库中使用ASP.NET标识两次

Entity framework 在具有相同上下文的同一数据库中使用ASP.NET标识两次,entity-framework,asp.net-core-mvc,asp.net-identity,entity-framework-core,Entity Framework,Asp.net Core Mvc,Asp.net Identity,Entity Framework Core,我有一个包含三个项目的VisualStudio解决方案。一种是DAL(数据访问层),它使用实体框架核心和一个ApplicationDbContext。 我在另一个(第二个项目)中引用了它,它是一个后端面板,用户将通过active directory进行身份验证,用户和角色将通过ASP.NET标识进行管理 我已经创建了另一个ASP.NET核心项目(网站-第三个项目),用于将面板和网站分离。这里也参考了DAL项目。 我想将网站的用户存储在与后端面板项目相同的数据库中,但我想为后端用户和网站用户创建单

我有一个包含三个项目的VisualStudio解决方案。一种是DAL(数据访问层),它使用实体框架核心和一个ApplicationDbContext。 我在另一个(第二个项目)中引用了它,它是一个后端面板,用户将通过active directory进行身份验证,用户和角色将通过ASP.NET标识进行管理

我已经创建了另一个ASP.NET核心项目(网站-第三个项目),用于将面板和网站分离。这里也参考了DAL项目。 我想将网站的用户存储在与后端面板项目相同的数据库中,但我想为后端用户和网站用户创建单独的表

在website project中,我创建了另一个ApplicationDbContext,在
OnModelCreating
中,我使用与
AspNet
不同的前缀覆盖了标识表的默认名称。 这两个
ApplicationDbContext
的数据库连接字符串相同。我已经完成了
addmigrationinital
,然后更新了数据库
updatedatabase
。我在同一数据库中获得了带有新前缀的新表,这些表与带有
AspNet
前缀的表位于同一数据库中。
到目前为止还不错

我面临的问题是,用两种不同的上下文查询数据库并不简单

所以我的问题是:是否可以在同一数据库中使用相同上下文的ASP.NET标识两次


我愿意接受其他解决方案来实现我所需要的。

否。不可能在同一上下文中有两个单独的标识表和类实例。在单独的上下文中执行此操作的方式是最好的方法。如果您想简化访问,我建议您创建一个或多个服务样式类,这些类同时注入两种上下文。然后,您可以简单地将您的服务类注入到您的应用程序中,并通过它处理一件事情。当然,您需要根据需要编写与两个上下文交互的方法,但这是您只需要做一次的工作,然后您就可以从中获益。

您所说的“我建议创建一个或多个同时注入两个上下文的服务样式类”是什么意思?你能提供一些代码样本吗?