繁体   English   中英

自动实现的属性类的C#泛型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM