2014-10-20 4 views
1

저는 Entity Framework의 초보자입니다. WPF 앱을 만들고 있습니다. 다음은 내 모델 클래스입니다.Entity Framework를 사용하여 데이터베이스에서 데이터 가져 오기

[Table("Vehicle")] 
    public class Vehicle 
    { 
     [Key] 
     public int VehicleId { get; set; } 
     [Column("LicencePlateNumber", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string LicencePlateNumber { get; set; } 
     [Column("LicencePlateState", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string LicencePlateState { get; set; } 
     [Column("Make", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string Make { get; set; } 
     [Column("Other", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string Other { get; set; } 
     [Column("Model", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string Model { get; set; } 
     [Column("Style", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string Style { get; set; } 
     [Column("Color", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string Color { get; set; } 
     [Column("PurchaseYear", TypeName = "int")] 
     public int PurchaseYear { get; set; } 
     [Column("InsurnaceCompanyName", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string InsurnaceCompanyName { get; set; } 
     [Column("InsurnaceCompanyNumber", TypeName = "ntext")] 
     [MaxLength(100)] 
     public string InsurnaceCompanyNumber { get; set; } 
    } 

DataGrid에서이 테이블의 데이터를 검색하려고합니다.

using (var context = new TransportContext()) 
{     
     var vehicleList = from v in context.Vehicles 
         select new 
         { 
           Number = v.LicencePlateNumber, 
           Make = v.Make, 
           Model = v.Model, 
           Year = v.PurchaseYear 
         }; 
        DG_Details.ItemsSource = vehicleList; 
        DG_Details.Items.Refresh(); 
    } 

그러나 나는 XAMLParseException을 얻고 있습니다. Otherhand에서이 작업을 시도하면 작동합니다.

using (var context = new TransportContext()) 
{    
     var projectionQuery = from v in context.Vehicles 
            select v; 
      var vehicleList = projectionQuery.ToList<Vehicle>(); 
        DG_Details.ItemsSource = vehicleList; 
        DG_Details.Items.Refresh(); 
    } 

그러나 모두 4 개만 검색하고 싶습니다. 도움이 필요하다!!

+0

? 나는 이것이 귀하의 vehicleList가 익명의 유형이기 때문에 이것이라고 생각합니다. 네 개의 속성을 정의한 클래스를 만들고 linq 문에 새 인스턴스를 만들 수 있습니다. 당신의 유형은 강해지므로 바인딩이 더 쉬울 것입니다. – kidshaw

답변

4

이 시도 :

이 예외 메시지 란
var vehicleList = (from v in context.Vehicles 
         select new 
         { 
           Number = v.LicencePlateNumber, 
           Make = v.Make, 
           Model = v.Model, 
           Year = v.PurchaseYear 
         }).ToList(); 
        DG_Details.ItemsSource = vehicleList; 
        DG_Details.Items.Refresh(); 
+0

고마워요 !! –

+0

@NileshBarai 여러분 환영합니다. :) –

관련 문제