我正在尝试为我的 ASP.NET Core API 推出高性能 DAL。我想使用 ADO.NET,但在设计软件架构时遇到困难。我正在寻求帮助讨论一个好的方法。
我有什么
我的代码库将包含三个项目
- MyApp.API
- MyApp.Repositories(数据访问层)
- MyApp.Services(业务逻辑)
我将在 MyApp.Repositories
中实现 IUnitOfWork
,并在 MyApp.API
中创建具体的 SqlUnitOfWork
。 Startup.cs
将把 IUnitOfWork
注册到 SqlUnitOfWork
。稍后,当我获得更多数据源(Mongo 等)时,我可以合并一个 UnitOfWorkFactory
。
问题
我应该在
Startup.cs
中注册每个存储库还是简单地将它们添加为IUnitOfWork
的属性?这里的想法是我会在我的 Controller 、服务和存储库中使用依赖注入(inject),但只需注入(inject)IUnitOfWork
。如何将连接字符串传递到
SqlUnitOfWork
中?我知道连接字符串应保留在MyApp.API
内。
最佳答案
另一个答案无关紧要,因为它建议我使用 EF,而我想避免使用 EF。
我使用存储库模式实现了 Dapper。我没有使用工作单元,因为我认为这会导致我不希望出现的性能损失。
这是我实现的原始原型(prototype)。 https://github.com/lenardchristopher/AdoAspDotNetCoreTest
关于c# - 在 ASP.NET Core 中使用 ADO.NET 作为数据访问层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52239612/