如何解决如何在核心层中使 SQLiteConnection 类通用?
我试图在我的解决方案中将通用代码部分分成“核心层”。我有一个类,它创建到 Sqlite db 文件的连接并执行如下的 Dapper 查询;
public class SlEnglishTurkishDal : IEnglishTurkishDal
{
public string Add(EnglishTurkish entity,string tableName)
{
try
{
using (IDbConnection conn = new SQLiteConnection(SqliteConnStrGenerator.LoadConnectionString()))
{
conn.Execute($"Insert into {tableName}(Word,Translation) values (@Word,@Translation)",entity);
}
}
catch (Exception ex)
{
return ex.Message;
}
return "Record is successfully added into database!";
}
}
为了摆脱为每个数据库表定义这些方法,我想在核心层的基类中创建通用方法,以便我的实体类可以继承该基类并使用它的方法如下;
public abstract class SlEntityDalBase<TEntity,TDbConnection> : IEntityDal<TEntity>
where TEntity : class,IEntity,new()
where TDbConnection: DbConnection,new()
{
public string Add(TEntity entity,string tableName)
{
try
{
using (TDbConnection conn = new TDbConnection(SqliteConnStrGenerator.LoadConnectionString()))
{
conn.Execute($"Insert into {tableName}(Word,entity);
}
}
catch (Exception ex)
{
return ex.Message;
}
return "Record is successfully added into database!";
}
}
然后我得到以下错误; 严重性代码描述项目文件行抑制状态 错误 CS0417 'TDbConnection':创建变量类型的实例时无法提供参数
当我使用 using 语句时;
using (TDbConnection conn = new TDbConnection())
然后它没有给出错误,但我无法弄清楚如何以这种方式提供连接字符串。我不确定这是否是正确的方法。我想知道执行此类实现的正确方法是什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。