[英]C# Generics on Auto-Implemented Property Classes
我创建了一个代表我的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平台上工作。
这应该适合您的工作。
public List<T> GetItems<T>()
{
return dbConn.Table<T>().ToList<T>();
}
您可以使用支持SQLite的DBLinq-然后在数据上下文中免费获取语法。
public IList<T> GetList<T>()
{
return _context.GetTable<T>().ToList();
}
public IEnumerable<T> GetItems<T>() where T: new()
{
lock (locker) {
return dbCon.Table<T> ().ToArray ();
}
}
我认为关键是最后的“:new()”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.