ASP.NET Core DB First如何读取其他项目appsettings的连接字符串
操作步骤
1. 配置文件存放位置
连接字符串配置统一放在入口项目 User.API 中,操作如下:
- 在User.API项目根目录新增
appsettings.json文件(如果已有就直接修改) - 新增
ConnectionStrings配置节点,内容如下:
{ "ConnectionStrings": { "UserCloudConnectionString": "Server=.;Database=UserDB;Trusted_Connection=True;" } }
- 右键点击
appsettings.json文件,选择【属性】,将【复制到输出目录】设置为如果较新则复制
2. Startup.cs 配置修改
在Startup.cs的ConfigureServices方法中注册DbContext,直接读取配置文件中的命名连接字符串:
public void ConfigureServices(IServiceCollection services) { // 其他服务注册代码... // 注册DbContext,读取命名连接字符串 services.AddDbContext<你的DbContext类名>(options => options.UseSqlServer(Configuration.GetConnectionString("UserCloudConnectionString"))); // 也可以直接写你要的name=写法,效果一致 // services.AddDbContext<你的DbContext类名>(options => // options.UseSqlServer("name=UserCloudConnectionString")); }
3. 适配脚手架迁移的可选优化
你Model项目中DbContext的OnConfiguring方法原有代码可以保留不用删除,当你执行EF迁移命令时,没有启动项加载配置的场景下会自动走这段兜底逻辑,不会报错。
4. 调用注意事项
不要在Data/Model层手动new DbContext实例,改为通过构造函数注入的方式获取DbContext:
- 你Data层的操作类构造函数添加DbContext参数,容器会自动注入实例
- API层调用Data层的类时也通过注入获取,不要手动new实例
内容的提问来源于stack exchange,提问作者A H
相关产品推荐
相关产品推荐

