【发布时间】:2019-05-26 01:46:18
【问题描述】:
我是 ASP.net 核心的新手,正在尝试将我现有的 RESTful WepAPI 转换为 ASP.Net Core API (2.2)。
以下是我目前的应用程序结构: [WebAPI 方法] 调用 -> [业务逻辑层 (BLL)] 调用 -> [数据访问层 (DAL)]。
为了从 DAL 打开 DB 连接,我正在调用另一个类库 (Infrstructure.Data.dll) 的静态方法并将连接字符串名称作为 Enum 传递。该库使用以下方法从 webAPI 的 Web.Config 获取实际的连接字符串
string connString = ConfigurationManager.ConnectionStrings[GetDatabaseHint(dbSource)].ConnectionString;
并返回 IDbConnection,我的 DAL 使用它与 DB 进行交易。
现在,我正在 ASP.net 核心 Web API 中寻找类似的选项。
到目前为止,我想出了以下几点:
在 API 的 Startup.cs 文件中,添加 services.AddSingleton(配置);
-
在Infrstructure.Data.dll类库中,添加
private static IConfiguration _config; public ConnectionFactory(IConfiguration config) { _config = config; } public static IDbConnection GetConnection(DBSource dbSource) { string connString = _config.GetConnectionString(GetDatabaseHint(dbSource)); //... Code to create connection using DB Providers return conn; }
IConfiguration 在此 Infrstructure.Data.dll 中始终为空。
如果这是一种不正确的方法,请告诉我,以及实现此目的的正确方法应该是什么。
【问题讨论】:
-
在 startup.cs 文件中发布您用于 DI 注册的确切代码。另外,如何或谁为 ConnectionFactory 创建对象?
标签: asp.net-core