C# 使用Linq读取数据库记录,并通过外键在DataGrid上显示
我有两个类:C# 使用Linq读取数据库记录,并通过外键在DataGrid上显示,c#,wpf,entity-framework-6,C#,Wpf,Entity Framework 6,我有两个类:Factor和factoriems。我还有三个窗口:Win1,Win2,WinReadWin1包含一个名为grd1的数据网格Win2包含名为grdItems的数据网格,而WinRead包含名为grdRead的数据网格 在factoriems上有一个来自Factor的外键。 我使用了SaveChanges()方法,并从Win2grdItems向这两个表插入数据。此外,我可以在grd1中读取并显示因子的表记录,所有内容都是正确的 现在我想,当我在grd1行上单击(我使用了DataGrid
Factor
和factoriems
。我还有三个窗口:Win1
,Win2
,WinRead
Win1
包含一个名为grd1
的数据网格Win2
包含名为grdItems
的数据网格,而WinRead
包含名为grdRead
的数据网格
在factoriems
上有一个来自Factor
的外键。
我使用了SaveChanges()
方法,并从Win2
grdItems
向这两个表插入数据。此外,我可以在grd1
中读取并显示因子的
表记录,所有内容都是正确的
现在我想,当我在grd1
行上单击(我使用了DataGridCellChanges
)时(例如,Id==50
),它应该加载WinRead
,并显示所有factoriem
,其外键是WinRead\u load
上的factoried 50
系数
public class Factor
{
public Factor()
{
this.BuyList = new List<FactorItems>();
}
public Int64 Id { get; set; }
public virtual ICollection<FactorItems> BuyList { 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?
}
}
现在,您将拥有选定的对象
WinRead wread = new WinRead
if (grd1.SelectedItems.Count > 0)
{
wread.grid.itemsource= ctx.Factor.BuyList.where(x=>x.Id==row.forignkey).Tolist()
wread.ShowDialog();
}
或
public class Factor
{
public Factor()
{
this.BuyList = new List<FactorItems>();
}
public Int64 Id { get; set; }
public virtual ICollection<FactorItems> BuyList { get; set; }
}
在
WinRead
中创建道具,并将外键保存在那里,在加载事件中,您可以加载您面临的问题在哪里?在读取数据或在UI上显示时?@AvinashReddy在这两个方面都有问题。请尝试为qustion@AvinashReddy请检查我编辑的.Database“var records=ctx.Factor.BuyList.where(x=>x.Id==50).Tolist();“谢谢,通过在WinRead
中创建道具,我完成了。这也很好。随时都可以。”。
WinRead wread = new WinRead
if (grd1.SelectedItems.Count > 0)
{
wread.grid.itemsource= ctx.Factor.BuyList.where(x=>x.Id==row.forignkey).Tolist()
wread.ShowDialog();
}