我在强类型 ShopDB 数据集中有 2 个表。Orders 表通过外键 FK_Employees_Orders 通过 EmployeeID 字段连接到Employees 表:
我的任务是显示每个员工的总销售额。(做类似 LEFT JOIN 的事情,但我想以不同的方式解决问题)。这是我的代码:
ShopDB shopDB = new ShopDB();
var employeesTableAdapter = new ShopDBTableAdapters.EmployeesTableAdapter();
employeesTableAdapter.Fill(shopDB.Employees);
var ordersTableAdapter = new ShopDBTableAdapters.OrdersTableAdapter();
ordersTableAdapter.Fill(shopDB.Orders);
ShopDB.EmployeesDataTable employees = employeesTableAdapter.GetData();
ShopDB.OrdersDataTable orders = ordersTableAdapter.GetData();
employees.Columns.Add("AggregateColumn", typeof(double), "Count(Child(FK_Orders_Employees).EmployeeID)"); /*название отношения взял из определения ShopDB.Designer.cs*/
foreach (DataRow employeeRow in employees.Rows)
{
foreach (DataColumn employeeColumn in employees.Columns)
Console.WriteLine("{0}: {1}", employeeColumn.ColumnName, employeeRow[employeeColumn]);
System.Data.EvaluateException HResult=0x80131920 消息 = 复合表达式“System.Data.AggregateNode”中的未绑定引用。Source = System.Data 堆栈跟踪:在 System.Data.AggregateNode.Eval(DataRow 行,DataRowVersion 版本)在 System.Data.DataExpression.Evaluate(DataRow 行,DataRowVersion 版本)在 System.Data.DataTable.EvaluateExpressions(DataColumn 列)到 System.Data.DataColumn.set_Expression(String value) 到 System.Data.DataColumnCollection.AddAt(Int32 index, DataColumn column) 到 System.Data.DataColumnCollection.Add(String columnName, Type type, String expression)
你能建议什么可能是解决方案吗?


我得到了我想要的。我放弃了这段关系,使用了 Linq,一切都解决了: