我创建了一个表示我的SQLite数据库的表模式的属性类。类中的每个属性都成为数据库中的一个属性。
class SQLiteTables
{
public class tblPerson
{
[PrimaryKey, AutoIncrement]
public int PersonID { get; set; }
public string PersonFirstName { get; set; }
public string PersonMiddleName { get; set; }
public string PersonLastName { get; set; }
}
public class tblSchedule
{
[PrimaryKey, AutoIncrement]
public int ScheduleID { get; set; }
public string ScheduleDescription { get; set; }
public DateTime ScheduleStart { get; set; }
public DateTime ScheduleEnd { get; set; }
}
//18 more table definitions below
}
现在,要从表中检索一些数据,
public void GetPersonList()
{
List<tblPerson> lstTemp = dbConn.Table<tblPerson>().ToList<tblPerson>();
// Some 20 lines of code here
}
我想避免编写特定于类型的方法,这是一项繁琐的工作。我想创建一个可重用的方法,它可以使用泛型实现检索任何表上的数据。我怎样才能做到这一点?
编辑我正在使用Windows Phone 8平台。
答案 0 :(得分:1)
这应该适用于你正在做的事情。
public List<T> GetItems<T>()
{
return dbConn.Table<T>().ToList<T>();
}
答案 1 :(得分:1)
您可以使用支持SQLite的DBLinq - 然后在数据上下文中免费获取语法。
public IList<T> GetList<T>()
{
return _context.GetTable<T>().ToList();
}
答案 2 :(得分:0)
public IEnumerable<T> GetItems<T>() where T: new()
{
lock (locker) {
return dbCon.Table<T> ().ToArray ();
}
}
我认为关键是&#34;:new()&#34;最后