Как связать два источника данных в сетку данных в C # - PullRequest
1 голос
/ 21 апреля 2019

моя проблема заключается в следующем: У меня есть сетка данных «salesTable», использующая инфраструктуру сущностей, я загружаю сетку данных с этим кодом:

salesDataGrid.ItemsSource = _db.salesTables.ToList();

один из столбцов salesTable - это customerId, который является внешним ключом customerTable, теперь я хочу показать customerName вместо customerId в сетке данных, но я не знаю, как.

salesTable выглядит следующим образом:

public int saleId { get; set; }
    public Nullable<int> customerId { get; set; }
    public Nullable<System.DateTime> saleDate { get; set; }
    public Nullable<int> invoiceId { get; set; }

    public Nullable<decimal> total{ get; set; }

    public virtual customerTable customerTable { get; set; }
    public virtual fac fac { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Sale_Detail> Sale_Detail { get; set; }

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 21 апреля 2019

Создайте эту ViewModel:

  public class GridViewModel
    {
        public int SaleId { get; set; }
        public string CustomerName { get; set; }
        //other properties you want
    }

Затем используйте GridViewModel в запросе:

var result = _db.salesTables.Include(x => x.customerTable)
                            .Select(x => new GridViewModel()
                          {
                               SaleId = x.saleId,
                               CustomerName = x.customerTable.CustomerName
                           }).ToList();

и наконец:

salesDataGrid.ItemsSource = result;
...