entity-frameworkselectdatalength

Using entity framework, how do you select the datalength of a column plus other column data


If I have a SQL table X with columns A and B, and I want to select the DATALENGTH of B, as well as column A, how do I do this in a single expression? For example:

var results = dc.X.Select(x => SqlFunctions.DataLength(x.B))

will return me results containing a single column equal to B's length. What does this statement look like if I want to include A in the same result set? I've tried this, but it won't compile obviously:

var results = dc.X.Select(x => new { SqlFunctions.DataLength(x.B), x.A });

With the error:

error CS0746: Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.


Solution

  • Try explicitly specifying the anonymous type's member names:

    var results = dc.X.Select(x => 
        new { Length = SqlFunctions.DataLength(x.B), A = x.A });