简体   繁体   中英

Create list from related tables in and set it as DataGrid in Devexpress WPF

I am using:

Entityramework 6 Code First Devexpress WPF

DBContext:

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

I created list: List TransportOwnerList

What would be a final list witch I can pass to WPF?

var result = dbContext.TransportOwners.AsQueryable();

I also need to filter data first by TransportID witch value I get from another filtered lists selected item

result = result.Where(tr => tr.TransportID.Equals(SelectedItem.TransportID));

So how to format list from Transpot and Owners and set it as dataGrid itemSource?

I need such data: TransportOwnerID, OwnerID, TransportID, ModelName, BrandName

TransportOwnerList = ... ?

You can project the needed fields:

var TransportOwnerList = result.Select(t => new 
                            {
                               t.TransportOwnerID,
                               t.OwnerID,
                               t.TransportID,
                               ModelName = t.Transport.Model,
                               BrandName = t.Transport.Brand,
                               ... // other fields
                            }).ToList();

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