从相关表中创建列表并将其设置为 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();