데이터베이스에 구분 된 데이터로 저장되는 표 형식의 데이터가 있습니다. 이상적이지는 않습니다.하지만 그것이 시스템이 설계된 방법입니다. 나는 데이터를 꺼내서 그것을 어떤 종류의 구조로 파싱 할 필요가있다.System.Data.DataTable의 경량 대체
예전에는 DataTable을 사용하여 좋았습니다. 그러나 이제는 더러운 느낌입니다. 데이터 모델에 테이블 형식의 데이터를 저장하는 데있어보다 효율적이고 효율적이며 가벼운 구조는 무엇입니까?
데이터베이스에 구분 된 데이터로 저장되는 표 형식의 데이터가 있습니다. 이상적이지는 않습니다.하지만 그것이 시스템이 설계된 방법입니다. 나는 데이터를 꺼내서 그것을 어떤 종류의 구조로 파싱 할 필요가있다.System.Data.DataTable의 경량 대체
예전에는 DataTable을 사용하여 좋았습니다. 그러나 이제는 더러운 느낌입니다. 데이터 모델에 테이블 형식의 데이터를 저장하는 데있어보다 효율적이고 효율적이며 가벼운 구조는 무엇입니까?
글쎄, 데이터베이스의 모든 컬럼을 특성으로 갖는 클래스를 작성하십시오. 그런 다음 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보고 할 수 있습니다.
여기 Telerik 개발자 중 하나에서 경량의 DataTable의 : 데이터 바인딩 잘 작동되도록
그것은 INotifyCollectionChanged과에서 INotifyPropertyChanged를 지원합니다.
덜한 "더티"라고 말하지는 않지만 대안입니다.
외부 라이브러리가 필요한 DataTable을 사용해야하는 이유는 무엇입니까? .NET의 컬렉션은 잘 작동합니다 ... –
@ AS-CII - 나는 System.Data.DataTable처럼 작동하는 대안으로 만 언급합니다. 스스로 컴파일하여 외부 어셈블리를 피할 수 있습니다. –
좋은 제안, 코빈. – Josh
음> IList의
내가 생각하고있는 두 가지 선택을 나열 변환 및 더 많은, 그리고 DataReader를 입력 할 유형을 포함 내가 그것을 개발 한 라이브러리를 사용합니다. 우리는 6 개의 기둥으로 제한 했으므로 6 개의 기둥을 넘는 것이 필요하지 않습니다. – Josh