簡體   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