首页 > 解决方案 > 在 ASP.NET Core 中使用 ADO.NET 作为数据访问层

问题描述

我正在尝试为我的 ASP.NET Core API 推出高性能 DAL。我想使用 ADO.NET,但在设计软件架构时遇到了困难。我正在寻求帮助讨论一个好的方法。

我有的

我的代码库将包含三个项目

我将IUnitOfWork在内部实现MyApp.Repositories并创建一个具体SqlUnitOfWorkMyApp.API. Startup.cs将注册IUnitOfWorkSqlUnitOfWork。稍后,当我获得更多数据源(Mongo 等)时,我可以合并一个UnitOfWorkFactory.

问题

  1. 我应该在每个存储库中注册Startup.cs还是简单地将它们添加为属性IUnitOfWork?这里的想法是我会在我的控制器、服务和存储库中使用依赖注入,但只需要注入IUnitOfWork.

  2. 如何将我的连接字符串传递到SqlUnitOfWork? 我知道连接字符串应该保持在MyApp.API.

标签: c#asp.netasp.net-coreado.net

解决方案


另一个答案是无关紧要的,因为它建议我使用 EF,这是我想避免的。

我用存储库模式实现了 Dapper。我没有使用工作单元,因为我认为这样做会导致我不希望出现的性能损失。

这是我实现的原始原型。 https://github.com/lenardchristopher/AdoAspDotNetCoreTest


推荐阅读