这两天在写AGV5.0的架构,其中数据访问想使用Dapper,因为这个系统对数据读写太频繁,又不能使用redis这类内存数据库,所以dappers是最理想的选择。
在之前的项目里面我都会将数据层单独抽离出来,类似一个DAL的组件。但是这个系统由于行业软件的特殊性所以不打算再单独剥离DAL层,只需将数据操作写一个通用的类,demo代码如下:

public class DBHelper
{

    public static string connectionString = "Server=.\\MSSQL12; Database=AGV3.0; User ID=sa; Password=11;";

    public static int Insert(string sqlkey,object area)
    {
        using (IDbConnection connection = new SqlConnection(connectionString))
        {
        	//"insert into tbAreaInfo(OwnArea,AreaName) values(@OwnArea,@AreaName)"
            return connection.Execute(GetSql["sqlkey"], area);
        }
    }

    public static int Delete(string sqlkey,object obj)
    {
        using (IDbConnection connection = new SqlConnection(connectionString))
        {
        	//delete from tbAreaInfo where OwnArea=@OwnArea
            return connection.Execute(GetSql["sqlkey"], obj);
        }
    }
}

上面的代码可以看出来 一些常用的增删改,可以通用化出来,解耦对具体的模型对象依赖。