System.Data.DataTable的轻量级替换

时间:2010-11-22 16:50:11

标签: c# data-structures .net-4.0

表格数据作为分隔数据存储在数据库中。我知道,这并不理想,但这就是系统的设计方式。我需要将数据拉出来并将其解析为某种结构。

在过去,我使用DataTable并称之为好。然而,现在,这只是感觉很脏。什么是更好,更高效,更轻量级的结构来存储我的数据模型中的表格数据?

3 个答案:

答案 0 :(得分:3)

这是来自Telerik开发人员的轻量级DataTable:

http://blogs.telerik.com/vladimirenchev/posts/09-04-23/lightweight-datatable-for-your-silverlight-applications.aspx

它支持INotifyCollectionChanged和INotifyPropertyChanged,因此它适用于数据绑定。

我不会说它不那么“脏”,但它是另一种选择。

答案 1 :(得分:2)

好吧,只需创建一个包含数据库所有列作为属性的类。然后只是实例化ICollection(List,Hashset等)的实现并填充它(例如使用LINQ)。

  public class Customer
  {
    public int Id { get; set;}
    public string Name { get; set; }

    public Customer(int id, string name)
    {
        this.Id = id;
        this.Name = name;
    }
  }

做类似的事情:

List<Customer> customers = new List<Customer>();
using (DbDataReader reader = // instantiate reader)
{
    while (reader.Read())
    {
       Customer customer = new Customer(reader.GetInt32(0), reader.GetString(1));
       customers.Add(customer);
    }
}

如果要访问存储在数据库中的数据,您可能需要查看LinqToSql或LinqToEntities。

答案 2 :(得分:0)

使用我开发的库包括类型转换等等,以及要列出的datareader https://www.nuget.org/packages/Generic.LightDataTable/