首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在asp.net核心中看不到来自其他项目的DbContext

在ASP.NET Core中,可以通过依赖注入来访问其他项目的DbContext。依赖注入是一种设计模式,它允许将依赖关系从一个对象传递给另一个对象,以实现解耦和可测试性。

要在ASP.NET Core中访问其他项目的DbContext,可以按照以下步骤进行操作:

  1. 在目标项目中,将DbContext注册为服务。可以在Startup.cs文件的ConfigureServices方法中添加以下代码:
代码语言:txt
复制
services.AddDbContext<OtherProjectDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("OtherProjectDb")));

这将注册OtherProjectDbContext作为服务,并指定数据库连接字符串。

  1. 在需要使用OtherProjectDbContext的地方,通过构造函数注入的方式获取它。例如,在控制器中:
代码语言:txt
复制
private readonly OtherProjectDbContext _dbContext;

public MyController(OtherProjectDbContext dbContext)
{
    _dbContext = dbContext;
}

现在,您可以在控制器中使用_otherProjectDbContext来执行数据库操作。

  1. 在appsettings.json文件中,添加OtherProjectDb的连接字符串配置。例如:
代码语言:txt
复制
"ConnectionStrings": {
  "OtherProjectDb": "Server=(localdb)\\mssqllocaldb;Database=OtherProjectDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}

这将为OtherProjectDbContext提供数据库连接信息。

通过以上步骤,您可以在ASP.NET Core中访问其他项目的DbContext,并执行数据库操作。这种方式可以实现不同项目之间的数据共享和重用。

推荐的腾讯云相关产品:腾讯云数据库SQL Server版(https://cloud.tencent.com/product/cdb_sqlserver)可以提供可靠的云数据库服务,支持SQL Server数据库,适用于各种规模的应用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.Net Core 开发笔记

尝试使用 ASP.Net Core 开发web应用程序一段时间了,感觉 ASP.Net core 不论是开发体验还是各方面都很优秀,整理笔记,便于后面使用时翻看。...XXXX.Core 项目核心 (Class Library) XXXX.Infrastructure 基础设施 (Class Library) XXXX.Api API主体 (dotnet 生成)...定义项目的类型:Web,Console,Library 定义项目的目标平台:.NET Core, .NET Framework, Mono 列举项目依赖(Nuget,其他类库等) Program.cs...事实上,Web 项目的本质就是一个 Console 项目,Main 中声明和创建了一个 IWebHost 来作为 ASP.NET Core 应用的核心,其中包含了配置信息,和Kestrel 服务。...DbContext已经实现了Unit of Work 和 Repository 模式. Controller等不应该直接使用DbContext.

1.7K10

从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入

使用EF的话不可避免要和DbContext打交道,Core中的常规用法一般是:创建一个XXXContext类继承自DbContext,实现一个拥有DbContextOptions参数的构造器,启动类.../efcoredemo.db"); } 即使是这样,依然有不够优雅的地方,那就是连接字符串被硬编码代码中,不能做到从配置文件读取。反正我忍受不了,只能再寻找其他方案。...把追溯对象换成_callback继续往上翻,DI框架的核心类ServiceProvider中找到如下方法: internal ServiceProvider(IEnumerable<ServiceDescriptor...默认情况下,Asp.Net Core框架在创建HostBuilder的时候会判定当前是否开发环境,开发环境下会开启这个验证: ? 所以前面那种关闭验证的方式是错误的。...如果发生这种情况,数据库连接会一直得不到释放,至于有什么后果大家应该都明白。

1.2K20
  • EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽

    DbContextPool 是 ASP.NET Core 2.1 引入的新特性,可以节省创建 DbContext 实例的开销,但没有想到其中藏着一个小坑。...最近有一个 ASP.NET Core 项目持续运行一段时间后日志中就会出现数据库连接池达到最大连接数限制的错误: System.InvalidOperationException: Timeout expired...后来实在没有其他可以怀疑的地方,唯有 DbContextPool ,于是尝试去掉 DbContextPool ,结果错误就消失了。...果然是 DbContextPool 引起的,但让人纳闷的是 DbContextPool 本来就是为了节省创建 DbContext 实例的开销,怎么反而消耗更多数据库连接,而且这个项目的负载很低,怎么可能把整个连接池都消耗殆尽呢...今天周会上谈了这个怪问题,后来突然想到:每个 DbContext 实例都会占用一个数据库连接(SqlConnection),不启用 DbContextPool 的时候,请求一结束,对应 DbContext

    2.4K20

    ASP.NET Core 基础知识】--身份验证和授权--使用Identity进行身份验证

    以下是ASP.NET Core Identity的主要组成部分: User Manager(用户管理器):User Manager是一个用于管理用户的核心组件。...1.2 Identity的创建和管理 ASP.NET Core中,创建和管理Identity通常包括以下步骤: 创建ASP.NET Core 项目 首先,你需要创建一个ASP.NET Core项目。...你可以根据项目的需求进一步扩展和定制Identity的功能。...访问控制: 通过[Authorize]属性或其他身份验证过滤器,可以控制器或动作方法级别设置访问控制。...版本兼容性: 目的生命周期中,Identity 框架可能会发布新的版本。更新到新版本时,你可能需要进行一些调整以保持兼容性。

    61500

    ASP.NET Core 基础知识】--测试--单元测试和集成测试

    1.2 使用xUnit进行单元测试 安装 安装和配置 xUnit ASP.NET Core 项目中是相对简单的。...(xUnit 核心扩展) 如果你使用的是 .NET Core CLI,可以命令行中运行以下命令安装这些包: dotnet add package xunit dotnet add package xunit.runner.visualstudio...以下是命令行中使用 .NET Core CLI 运行集成测试的步骤: 打开命令行或终端,并导航到包含测试项目的目录。...确保你的解决方案已经构建完成,你的测试项目和被测试项目的依赖已经正确安装。 运行以下命令来执行测试: dotnet test 这个命令会自动发现并运行测试项目中的所有测试。...通过这些步骤,你可以命令行中使用 .NET Core CLI 运行你的集成测试,并查看测试结果。确保在运行测试之前,你的代码已经编译成功,依赖已经安装,并且测试环境已经设置好。

    23900

    ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    背景 在前一篇文章《【初学者指南】ASP.NET MVC 5中创建GridView》中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web 表单的功能。...请求对象中的所有参数传递都不是安全类型的,所以我们必须手动的将它们转换到目的类型,这也将有助于开发人员专注于业务逻辑,而不用总是考虑 HTTP 参数,检查参数、转化参数。...从该对话框中,跳转到 Web,并选择 ASP.NET Web 应用程序项目,然后单击确定。 ? 模板页面,选择 MVC,如果编写了单元测试,请先做检查,然后点击确定。...如果完成了包的安装,你将会在工程中看到以下引用界面: ? 配置数据库的连接字符串 写控制器代码之前,我们需要为实体框架配置连接字符串,以便在操作数据库时来连接数据库。...return _dbContext ??

    5.4K80

    ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目

    假设在项目的根目录有这样一个json文件, ASP.NET Core项目里我们可以使用IConfigurationRoot来使用该json文件作为配置文件, 而IConfigurationRoot是使用...这几个项目的关系是: MyRestful.Infrastructure 需要引用 MyRestful.Core, MyRestful.Api 需要引用其他两个.  ...再建立一个Domain Model, 因为Model和项目的合约(接口)一样都是项目的核心内容, 所以把Model放在MyRestful.Core项目下: ?...由于Repository依赖于DbContext, 而DbContextASP.NET Core项目配置里是Scope的, 所以每次HTTP请求的生命周期中只有一个DbContext实例, 所以IRepository...所以我们把项目稍微重构以下, 把合约/接口以及项目的核心都放在MyRestful.Core项目里: ? 好的, 这次先写道这里, 项目已经做好了最基本的准备, 其余功能的扩展会随着后续文章进行.

    1.1K00

    项目配置

    ASP.NET Core 预备知识 项目配置 假设在项目的根目录有这样一个json文件, ASP.NET Core项目里我们可以使用IConfigurationRoot来使用该json文件作为配置文件...当然了, 如果firstConfig里面有而secondConfig却没有的键, 它的值肯定来自firstConfig. 配置提供商 配置数据可以来自多种数据源, 它们可能是不同格式的....项目里面建立一个DbContext: 再建立一个Domain Model, 因为Model和项目的合约(接口)一样都是项目的核心内容, 所以把Model放在MyRestful.Core项目下: 然后把这个...由于Repository依赖于DbContext, 而DbContextASP.NET Core项目配置里是Scope的, 所以每次HTTP请求的生命周期中只有一个DbContext实例, 所以IRepository...所以我们把项目稍微重构以下, 把合约/接口以及项目的核心都放在MyRestful.Core项目里: 好的, 这次先写道这里, 项目已经做好了最基本的准备, 其余功能的扩展会随着后续文章进行.

    82820

    (转载非原创)Abp太重了?轻量化Abp框架

    Abp为我们生成的项目,减少了我们初始化项目的工作量,开箱即用,因此将我们可能会使用的Nuget包预先引入到我们的项目中,也就给我们一种依赖太多的感觉。...接下来将创建一个原生的ASP.NET Core Web API项目,围绕模块化和依赖注入两个核心概念,来展示如何以最小依赖的方式使用Abp。...数据访问 要想实现数据访问功能,首先我们需要定义Entity、DbContext并配置数据库支持。...Abp的层次架构中,Entity、Repository属于领域层,Service属于应用层,DbContext则属于EntityFramework Core模块,因此我们按需引入所需模块即可。...本文之初,我便提出了Abp的核心是模块化及依赖注入的观点,当我们将入门的重点放在模块化和依赖注入上,那么会发现Abp是一个极易上手并且学习曲线很平缓的框架。

    1.2K10

    学完这篇依赖注入,与面试官扯皮就没有问题了。

    webapp:scoped service 会在请求结束时被销毁; EFCore:使用AddDbContext默认注册的是特定范围的DbContext,这意味我们可以一次sql连接内,使用同一个...DbContext实例进行多次DB操作。...2.3 依赖注入实现原理 结合理论、使用方式 猜测依赖注入的原理: 实现DI,核心在于依赖注入容器IContainer,该容器具有以下功能 ①....3.源码导航 利用反射产生对象是依赖注入的核心过程,这也是面试造航母时经常问到的。...干货旁白 控制反转是一种软件工程中解耦合的思想,调用方依赖接口或抽象类,减少了耦合,控制权交给了服务容器,由容器维护注册,并将具体的实现动态注入到调用方。

    1.2K31

    多线程下的调用上下文 : CallContext

    数据槽不在其他逻辑线程上的调用上下文之间共享。当 CallContext 沿执行代码路径往返传播并且由该路径中的各个对象检查时,可将对象添加到其中。...Web环境下等于System.Web.HttpContext.Current 2 探究CallContext方法 上面介绍了CallContext提供的核心方法,下面我们就来通过实践来理解一下。...例如,下面是一个示例代码,我们可以借助AsyncLocal来自己实现一个CallContext类。...而且,有时候一个线程并不一定是拿去处理请求了,如果是服务器拿去处理其他的业务,那就可能引发一些其他的问题。...这时,或许我们可以考虑另一个方案,ASP.NET中的HttpContext中有一个Items属性,它也可以用来保存key-value,这就完美了,一次请求正好对应着一个HttpContext,请求结束

    90420

    ASP.NET MVC5高级编程——(3)MVC模式的模型

    基架知道如何命名控制器、命名视图以及每个组件需要执行什么代码,也知道应用程序中如何放置这些以使应用程序正常工作。...新建的ASP.NET MVC5目会自动包含对实体框架(EF)的引用。...如果EF能够连接上数据库服务器,但找不到数据库,那么框架会自动创建一个数据库。 注意自动生成的数据库的名字和数据上下文类同名。这个数据库其实是虚拟的,它在项目的App_Data文件夹下: ?...两个初始化器都需要一个泛型类型的参数,并且这个参数必须是DbContext的派生类。 文件global.asax.cs中,可以应用程序启动过程中设置一个初始化器: 源代码: ?...sad path中,控制器操作需要重新创建Edit视图,以便用户更改自身产生的错误,而ASP.NET MVC5默认提供了客户端校验,如图所示: ?

    4.7K40
    领券