Tag: design patterns

使用Dapper的存储库设计模式

这可能是代码审查的问题,而不是堆栈溢出。 我正在使用Dapper for MicroORM来检索并将数据保存到SQL Server 2014.我在DTO Proj中有DTO类,它代表从DB检索到的数据或保存到DB。 我正在使用存储库模式,所以在我的服务层,如果需要存储库,我使用构造函数DI注入该依赖项,然后调用存储库上的方法来完成工作。 所以我要说有2个名为CustomerService和CarService的服务。 然后,我有2个存储库,一个CustomerRepository和一个CarRepository。 我有一个接口,它定义每个存储库中的所有方法,然后定义具体的实现。 下面显示了一个示例方法(调用Stored Proc来执行DB INSERT(注意,存储过程的实际字符串变量被定义为类顶部的私有字符串): public void SaveCustomer(CustomerDTO custDTO) { using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings[“myDB”].ConnectionString)) { db.Execute(saveCustSp, custDTO, commandType: CommandType.StoredProcedure); } } 这一切都很好但我发现自己在每个存储库中的每个方法中重复使用块。 我有两个真正的问题,如下所述。 是否有一种更好的方法,我可能会以某种方式使用BaseRepository类,每个其他存储库inheritance,Base将实现数据库连接的实例化? 对于系统上的多个并发用户,这仍然可以正常工作吗? **** ****更新 根据Silas的回答,我创建了以下内容 public interface IBaseRepository { void Execute(Action query); } public class BaseRepository: IBaseRepository { public void Execute(Action […]

在C#中实现生产者/消费者模式

如何使用事件和代理在C#中实现Producer / Consumer模式? 在使用这些设计模式时,我需要注意什么? 我需要注意哪些边缘情况?