저는 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 개만 검색하고 싶습니다. 도움이 필요하다!!
? 나는 이것이 귀하의 vehicleList가 익명의 유형이기 때문에 이것이라고 생각합니다. 네 개의 속성을 정의한 클래스를 만들고 linq 문에 새 인스턴스를 만들 수 있습니다. 당신의 유형은 강해지므로 바인딩이 더 쉬울 것입니다. – kidshaw