private static DbNewInstanceExpression CreateNewRowExpression(
List<KeyValuePair<string, DbExpression>> columns, InitializerMetadata initializerMetadata)
{
var propertyValues = new List<DbExpression>(columns.Count);
var properties = new List<EdmProperty>(columns.Count);
for (var i = 0; i < columns.Count; i++)
{
var column = columns[i];
propertyValues.Add(column.Value);
properties.Add(new EdmProperty(column.Key, column.Value.ResultType));
}
var rowType = new RowType(properties, initializerMetadata);
var typeUsage = TypeUsage.Create(rowType);
return typeUsage.New(propertyValues);
}