使用 Linq 读取数据库记录并通过外键显示在 DataGrid 上
Read DB records with Linq and show on DataGrid by foreign key
我有两个 类:Factor
和 FactorItems
。我还有三个Windows:Win1
、Win2
、WinRead
。 Win1
包含一个名为 grd1
的 DataGrid; Win2
包含一个名为 grdItems
的 DataGrid,WinRead
包含一个名为 grdRead
.
的 DataGrid
FactorItems
上有一个来自 Factor
的外键。
我使用 SaveChanges()
方法并将数据从 Win2
grdItems
插入到 table。此外,我可以读取和显示 grd1
中的 Factor's
table 条记录,所有内容都是正确的。
现在我想要当我在 grd1
行(例如,使用 Id == 50
)上单击(我使用 DataGridCellChanges
)时,它应该加载 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; }
}
因素项
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?
}
}
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
中创建 prop 并在那里保存外键,在加载事件中,你可以加载
我有两个 类:Factor
和 FactorItems
。我还有三个Windows:Win1
、Win2
、WinRead
。 Win1
包含一个名为 grd1
的 DataGrid; Win2
包含一个名为 grdItems
的 DataGrid,WinRead
包含一个名为 grdRead
.
FactorItems
上有一个来自 Factor
的外键。
我使用 SaveChanges()
方法并将数据从 Win2
grdItems
插入到 table。此外,我可以读取和显示 grd1
中的 Factor's
table 条记录,所有内容都是正确的。
现在我想要当我在 grd1
行(例如,使用 Id == 50
)上单击(我使用 DataGridCellChanges
)时,它应该加载 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; }
}
因素项
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?
}
}
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
中创建 prop 并在那里保存外键,在加载事件中,你可以加载