简体   繁体   中英

Retrieving data from database using Entity Framework

I am a beginner with Entity Framework. I am building a WPF app. Following is my model class:

[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; }
    }

I am trying to retrieve data from this table in 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();
   }

But I am getting an XAMLParseException . On the Otherhand if I try this then it works:

 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();
   }

But I want to retrieve only 4 columns not all. Need Help!!

Try this :

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();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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