您好我想知道如何以动态方式实现下面的查询表达式:
DataTable _dataSourceMatrix = GetManager.Budget.GetAll().ConvertToDataTable();
switch (EntityType)
{
case DomainType.Department:
DataTable _departmentList = GetManager.DepartmentManager.GetAll().ConvertToDataTable();
var _genericBudgetJoinDepartmentList = from a in _dataSourceMatrix.AsEnumerable()
join b in _departmentList.AsEnumerable()
on a.Field<int>("EntityID") equals b.Field<int>("DepartmentID")
select new { EntityName = b.Field<string>("Name"), Period = a.Field<string>("Period"), Value = a.Field<double>("Value"), EntityID = a.Field<int>("EntityID") };
_dataSourceMatrix = _genericBudgetJoinDepartmentList.OrderBy(x => x.Period).ConvertToDataTable();
break;
}
正如您所看到的,我有一个动态类型的EntityType来指示需要与_dataSourceMatrix连接的目标数据源类型。我不希望代码变得臃肿,只需要改变要加入的目标源来重写相同的查询表达式。我遇到过像QueryBuilder这样的东西,但它似乎无法实现我想成为的东西。有什么想法?
答案 0 :(得分:0)
由于您必须根据http://localhost:400/rest-api/emails?id=59
选择表格和字段,因此有多种方法可以设置它们,包括使用EntityType
switch
或创建{{1}由case
索引。选择它们后,您可以处理连接:
Dictionary