Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
C# 在基类中初始化ApplicationContext_C#_Asp.net Core_Asp.net Identity - Fatal编程技术网

C# 在基类中初始化ApplicationContext

C# 在基类中初始化ApplicationContext,c#,asp.net-core,asp.net-identity,C#,Asp.net Core,Asp.net Identity,我已经开始在.NETCore中学习这个项目。这是SPA应用程序。 我已经创建了一个基本存储库,我想在其中初始化由ApiAuthorizationDbContext派生的ApplicationDbContext 数据库上下文初始化在某种程度上是通过依赖项注入实现的,但对于由构造函数注入对象的基本存储库类则不起作用。我必须为每一个在我看来毫无用处的存储库注入上下文。我更喜欢手动实例化这样的上下文 我的问题是ApiAuthorizationDbContext需要操作存储选项。我找不到如何配置这些选项。

我已经开始在.NETCore中学习这个项目。这是SPA应用程序。 我已经创建了一个基本存储库,我想在其中初始化由ApiAuthorizationDbContext派生的ApplicationDbContext

数据库上下文初始化在某种程度上是通过依赖项注入实现的,但对于由构造函数注入对象的基本存储库类则不起作用。我必须为每一个在我看来毫无用处的存储库注入上下文。我更喜欢手动实例化这样的上下文

我的问题是ApiAuthorizationDbContext需要操作存储选项。我找不到如何配置这些选项。在下面的代码片段中,我必须使用一个构造函数

public类ApplicationDbContext:ApiAuthorizationDbContext
{
公共应用程序上下文(
DbContextOptions选项,
IOOptions operationalStoreOptions):基本(选项,operationalStoreOptions)
{
}
公共数据库集城市{get;set;}
}

为什么您希望手动实例化它,然后注入操作存储而不是导入如果您不想注入操作存储,然后手动创建操作存储,但实际上您应该使用依赖项注入来完成所有事情,该体系结构的目的是让您的生活更轻松,那么,为什么您希望对APIauthorizationDBContext有一个硬依赖关系呢?如果您的问题是存储库类中的代码,那么您可能应该发布它。我不想通过依赖性注入来注入上下文,这可能不是真的,但如果我应该在每个存储库中都这样做,我是对的吗?在我看来,一个中心班级是一个很好的环境什么?您不必在每个类中都注入它,但是如果您需要它,您要么需要在您需要的地方注入,要么在您需要的地方注入包含它的东西。如果没有充分利用依赖注入,您将失去它的大部分好处。DI的主要好处之一是,您可以对应用程序进行粒度控制。手动实例化依赖项不仅会打乱测试,还会使您在将来更难更改依赖项为什么您希望手动实例化它,然后注入操作存储而不是头如果您不想注入,那么手动创建操作存储,但实际上,您应该使用依赖注入程序来完成所有工作,该体系结构的目的是让您的生活更轻松,那么,为什么您希望对APIauthorizationDBContext有一个硬依赖关系呢?如果您的问题是存储库类中的代码,那么您可能应该发布它。我不想通过依赖性注入来注入上下文,这可能不是真的,但如果我应该在每个存储库中都这样做,我是对的吗?在我看来,一个中心班级是一个很好的环境什么?您不必在每个类中都注入它,但是如果您需要它,您要么需要在您需要的地方注入,要么在您需要的地方注入包含它的东西。如果没有充分利用依赖注入,您将失去它的大部分好处。DI的主要好处之一是,您可以对应用程序进行粒度控制。手动实例化依赖项不仅会打乱测试,还会使您将来更难更改依赖项