Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq读取数据库记录,并通过外键在DataGrid上显示_C#_Wpf_Entity Framework 6 - Fatal编程技术网

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