【发布时间】:2014-05-29 22:23:26
【问题描述】:
我想在动态 LINQ 中进行以下查询。我尝试了一些解决方案,但还没有成功。
select
SUM([Value1]) AS [Sum]
,[Dim1] AS [Primary],
[Dim2] AS [Secondary]
from
(
SELECT
value1, dim1, dim2
FROM [BudgetLine]
WHERE [BudgetID] = 4
) as a
GROUP BY [Dim1], [Dim2]
我当前的代码看起来像这样,但我需要重写它以提供上面的 SQL。
var query = (DatabaseConnection.DataMemoryContext.GetTable<BudgetLineEntity>().AsQueryable()
.Where(String.Format("BudgetID={0}",filter.BudgetId))
.GroupBy(String.Format("new({0},{1})",primaryDimension.Name,secondaryDimension.Name), "new(Value1)")
.Select(String.Format("new (Key.{0} as Primary, Key.{1} as Secondary, Sum(Value1) as Sum)",primaryDimension.Name,secondaryDimension.Name)));
primaryDimension.Name 和 SecondaryDimension.Name 包含要分组的列的名称。
【问题讨论】:
-
你永远不会得到那个确切的代码,LINQ 会使用范围和很多别名等,所以据我所知,得到那个确切的代码是不可能的
-
好的,我能得到类似的吗?
标签: c# sql linq linq-to-sql dynamic-linq