C# Linq查询,用于从2表中获取详细信息并将其放入ObservableCollection C
目前,我正在使用以下代码创建用户集合并绑定到数据网格。很好用C# Linq查询,用于从2表中获取详细信息并将其放入ObservableCollection C,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,目前,我正在使用以下代码创建用户集合并绑定到数据网格。很好用 private ObservableCollection<User> users; using (CarStudioDBEntities dt = new CarStudioDBEntities()) { var catList = (from user in dt.Users select user).ToList();
private ObservableCollection<User> users;
using (CarStudioDBEntities dt = new CarStudioDBEntities())
{
var catList = (from user in dt.Users
select user).ToList();
users = new ObservableCollection<User>(catList);
this.Dispatcher.Invoke(() =>
{
lstUsers.ItemsSource = users;
});
}
xaml
问题是我需要创建另一个可观察的收集部件;
其中包含对类别表的外键引用。
现在我需要通过部件中的categoryId获取Category表中的类别名称,
最后,将具有类别名称的零件的详细信息绑定到数据网格。
我无法为此和编写适当的linq查询。
简而言之,我需要ObservableCollection,其中包含零件和类别的详细信息。如果您正在使用LINQ查找数据表的内部联接
var result = from dataRows1 in table1.AsEnumerable()
join dataRows2 in table2.AsEnumerable()
on dataRows1.Field<string>("ID") equals dataRows2.Field<string>("ID")
select dtResult.LoadDataRow(new object[]
{
dataRows1.Field<string>("ID"),
dataRows1.Field<string>("name"),
dataRows2.Field<int>("<other fields you want>"),
}, false);
result.CopyToDataTable();
在此之后,您可以使用新的DataTable进行绑定从静态列表创建可观察的集合没有意义。这不会为您提供原始查询的集合更新。
var result = from dataRows1 in table1.AsEnumerable()
join dataRows2 in table2.AsEnumerable()
on dataRows1.Field<string>("ID") equals dataRows2.Field<string>("ID")
select dtResult.LoadDataRow(new object[]
{
dataRows1.Field<string>("ID"),
dataRows1.Field<string>("name"),
dataRows2.Field<int>("<other fields you want>"),
}, false);
result.CopyToDataTable();