这几天我尝试使用一些基本的 CRUD 函数创建一个抽象的基础存储库简洁的扩展 https://github.com/tmsmith/Dapper-Extensions。但作为示例给出的代码使用 SqlConnection 来连接到 SQL Server 数据库。我希望能够连接到所有类型的数据库(SQL Server、MySql 等)。此外,每个 CRUD 函数都会重复其代码示例,如下所示
using (SqlConnection cn = new SqlConnection(_connectionString))
{
cn.Open();
//Code doing something here...
cn.Close();
}
所以我正在考虑创建一个数据库上下文它可以处理连接的创建、打开和关闭,还可以根据我想要使用的数据库类型(一种数据库工厂).
有人已经做到了并且可以分享他的代码吗?
感谢你们 !
您正在使用 Dapper-Extensions;以下代码仅适用于 Dapper。但这并没有改变整个概念。只是代替sql
你需要通过poco
.
Refer this https://stackoverflow.com/a/45029588/5779732回答我如何实施IUnitOfWork
and DalSession
。在下面的代码中,BaseDal
就像BaseRepository
.
public abstract class BaseDal
{
internal BaseDal(IUnitOfWork unitOfWork)
{
dapperHandler = new DapperHandler(unitOfWork);
}
DapperHandler dapperHandler = null;
protected T Get<T>(string sql, DynamicParameters param) where T : class
{
var result = dapperHandler.Query<T>(sql, param).FirstOrDefault();
return result;
}
protected List<T> GetList<T>(string sql, DynamicParameters param) where T : class
{
var result = dapperHandler.Query<T>(sql, param).ToList();
return result;
}
protected int Insert(string sql, DynamicParameters param)
{
var result = dapperHandler.Execute(sql, param);
return result;
}
}
Edit 1有关 Dapper-Extensions 的示例代码,请参阅this https://stackoverflow.com/a/45460483/5779732我最近发布的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)