Чтение записей БД с помощью Linq и отображение в DataGrid по внешнему ключу - PullRequest
1 голос
/ 03 июня 2019

У меня есть два класса: Factor и FactorItems. У меня также есть три окна: Win1, Win2, WinRead. Win1 содержит сетку данных с именем grd1; Win2 содержит сетку данных с именем grdItems, а WinRead содержит сетку данных с именем grdRead.

Существует внешний ключ от Factor на FactorItems. Я использовал метод SaveChanges() и вставил данные в обе таблицы из Win2 grdItems. Кроме того, я могу читать и показывать Factor's записей таблицы в grd1, и все правильно.

Теперь я хочу, чтобы при нажатии (я использовал DataGridCellChanges) на строку grd1 (например, с Id == 50), он должен загрузить WinRead и показать все FactorItems с их внешним ключом, который был Factor_Id 50 on WinRead_Load grdRead.

Фактор

public class Factor
{
    public Factor()
    {
        this.BuyList = new List<FactorItems>();
    }

    public Int64 Id { get; set; }
    public virtual ICollection<FactorItems> BuyList { get; set; }
}

FactorItems

public class FactorItems
{
    public Int64 Id { get; set; }
    public string ProductName `enter code here`{ get; set; }
    public int NumberInBox { get; set; }
    public decimal TotalNumber { get; set; }

    public virtual Factor Factors{ get; set; }
}

Win1

private void grd1_SelectedCellsChanged(objectsender,SelectedCellsChangedEventArgs e)
{
    WinRead wread = new WinRead
    if (grd1.SelectedItems.Count > 0)
    {
        wread.ShowDialog();
    }
}

WinRead

private void grdRead_Loaded(object sender, RoutedEventArgs e)
{
    using (var ctx = new EntContext())
    {
        //What do I write here?
    }
}

1 Ответ

1 голос
/ 03 июня 2019
Factor row = dataGridPrincipal.SelectedItem as Factor;

Теперь у вас будет выделенный объект

WinRead wread = new WinRead
if (grd1.SelectedItems.Count > 0)
{
    wread.grid.itemsource= ctx.Factor.BuyList.where(x=>x.Id==row.forignkey).Tolist()
    wread.ShowDialog(); 
}

Или

создайте реквизит в WinRead и сохраните внешний ключ там и в событии загрузки, вы можете загрузить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...