从相关表中创建列表并将其设置为 Devexpress WPF 中的 DataGrid
Create list from related tables in and set it as DataGrid in Devexpress WPF
我正在使用:
实体框架 6 代码优先
Devexpress WPF
数据库上下文:
public class Transport
{
[Key]
public int TransportID {get; set;}
public string Model { get; set; }
public string Brand { get; set; }
}
public class Owner
{
[Key]
public int OwnerID {get; set;}
public int Name {get; set;}
}
public class TransportOwner
{
[Key]
public int TransportOwnerID {get; set;}
public int TransportID {get; set;}
[ForeignKey("TransportID")]
public virtual Transport Transport { get; set; }
[ForeignKey("OwnerID")]
public virtual Owner Owner { get; set; }
}
public virtual DbSet<Transport> Transports { get; set; }
public virtual DbSet<Owner> Owners { get; set; }
public virtual DbSet<TransportOwner> TransportOwners { get; set; }
我创建了列表:
列出 TransportOwnerList
我可以传递给 WPF 的最终列表是什么 ?
var result = dbContext.TransportOwners.AsQueryable();
我还需要先按 TransportID 值过滤数据,我从另一个过滤列表中选择了项目
result = result.Where(tr => tr.TransportID.Equals(SelectedItem.TransportID));
那么如何格式化来自 Transpot 和 Owners 的列表并将其设置为 dataGrid itemSource?
我需要这样的数据:
TransportOwnerID、OwnerID、TransportID、型号名称、品牌名称
TransportOwnerList = ... ?
您可以投影需要的字段:
var TransportOwnerList = result.Select(t => new
{
t.TransportOwnerID,
t.OwnerID,
t.TransportID,
ModelName = t.Transport.Model,
BrandName = t.Transport.Brand,
... // other fields
}).ToList();
我正在使用:
实体框架 6 代码优先 Devexpress WPF
数据库上下文:
public class Transport
{
[Key]
public int TransportID {get; set;}
public string Model { get; set; }
public string Brand { get; set; }
}
public class Owner
{
[Key]
public int OwnerID {get; set;}
public int Name {get; set;}
}
public class TransportOwner
{
[Key]
public int TransportOwnerID {get; set;}
public int TransportID {get; set;}
[ForeignKey("TransportID")]
public virtual Transport Transport { get; set; }
[ForeignKey("OwnerID")]
public virtual Owner Owner { get; set; }
}
public virtual DbSet<Transport> Transports { get; set; }
public virtual DbSet<Owner> Owners { get; set; }
public virtual DbSet<TransportOwner> TransportOwners { get; set; }
我创建了列表: 列出 TransportOwnerList
我可以传递给 WPF 的最终列表是什么 ?
var result = dbContext.TransportOwners.AsQueryable();
我还需要先按 TransportID 值过滤数据,我从另一个过滤列表中选择了项目
result = result.Where(tr => tr.TransportID.Equals(SelectedItem.TransportID));
那么如何格式化来自 Transpot 和 Owners 的列表并将其设置为 dataGrid itemSource?
我需要这样的数据: TransportOwnerID、OwnerID、TransportID、型号名称、品牌名称
TransportOwnerList = ... ?
您可以投影需要的字段:
var TransportOwnerList = result.Select(t => new
{
t.TransportOwnerID,
t.OwnerID,
t.TransportID,
ModelName = t.Transport.Model,
BrandName = t.Transport.Brand,
... // other fields
}).ToList();