Since its release, I’ve seen a number of scenarios where Analysis Services Tabular is the analytical engine of the reporting section in a larger system. In these conditions, at least a part of the queries sent to Analysis Services are DAX queries generated by code (as a consequence of user interaction or for other reasons).
Since DAX knowledge is not very common among developers, having a LINQ to DAX Query provider is more than welcome to simplify DAX code generation. Dealogic, which is between the first companies I helped in Tabular adoption a few years ago, invested time in a first version of the LINQ to DAX provider that is now available on CodePlex and open to contributions.
I looked at the features available and at the DAX code generated and it already looks very interesting. You can generate good DAX queries without knowing DAX (which I suggest studying anyway!), and LINQ to DAX does a lot of job splitting conditions between CALCULATETABLE, SUMMARIZE, ADDCOLUMNS and FILTER. Kudos to György Farkas for his effort!
Evaluates a table expression in a context modified by filters.
CALCULATETABLE ( <Table> [, <Filter> [, <Filter> [, … ] ] ] )
Creates a summary of the input table grouped by the specified columns.
SUMMARIZE ( <Table> [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] )
Returns a table with new columns specified by the DAX expressions.
ADDCOLUMNS ( <Table>, <Name>, <Expression> [, <Name>, <Expression> [, … ] ] )
Returns a table that has been filtered.
FILTER ( <Table>, <FilterExpression> )