如何将泛型与SQLite一起使用



我创建了一个名为DB_Processor_Generic的类,用于创建不同的数据库并执行添加/获取数据操作。但我需要将这个类与不同的数据类型一起使用,所以我考虑使用泛型,但当我使用&quot_数据库。Query((">如下所示,我得到错误,说

'T'必须是具有公共无参数的非抽象类型构造,以便将其用作泛型类型中的参数"T"或方法"SQLiteConnection.Query(string,params object[](

我的代码有什么问题吗?因为我是这个社区的新手,如果我的问题描述有什么问题,请纠正我,谢谢

public class DB_Processor_Generic<T>
{
private SQLite.SQLiteConnection _db;
private string _path;
//Constructor
public DB_Processor_Generic(string path)
{
_path = path;
_db = new SQLite.SQLiteConnection(this._path);
_db.CreateTable<T>();
}
//Method
public void AddData<T>(T t1)
{
_db.Insert(t1);
}
public List<T> GetDB<T>(string tableName)
{
var DB_List = _db.Query<T>($"SELECT * FROM {tableName}");
return DB_List;
}
}

这个错误告诉您需要向T:添加一个约束

public class DB_Processor_Generic<T> where T : new()

因为Query<T>在其定义中对T有约束,所以也必须设置您的,才能将T用作其类型参数。

最新更新