Betrachten Sie diese Klasse:Konvertieren Func <T, string> [] in Func <T, string[]>?
public class Column<T>
{
public string Header { get; set; }
public Func<T, string> ValueExpression { get; set; }
}
wie folgt verwendet:
var columns = new List<Column<Employee>>
{
new Column<Employee> {Header = "Employee Id", ValueExpression = e => e.EmployeeID.ToString()},
new Column<Employee> {Header = "Name", ValueExpression = e => e.FirstName + " " + e.LastName},
new Column<Employee> {Header = "Employee Birthday Year", ValueExpression = e => e.BirthDate.HasValue ? e.BirthDate.Value.Year.ToString() : ""},
new Column<Employee> { Header = "test", ValueExpression = e => e.Address}
}
Ich möchte eine .Select() auf einem IQueryable tun es nur, um die benötigten Felder aus der Datenbank abgerufen werden.
Deshalb möchte ich, so etwas tun:
var expressions = columns.Select(c => c.ValueExpression).Combine();
IQueryable<Employee> employees = EmployeeRepository.GetEmployees();
employees = employees.Select(expressions);
Nur "Combine()" offensichtlich nicht existiert .. :-)
Ein großer Kuss für Sie, wenn dies mein Problem löst. Werde es versuchen :-) –
@Mehrdad: Hoffentlich wird er die Antwort auch akzeptieren. :) –
Dies beantwortet die Frage im Titel. Also +1. Löst das "von der Datenbank" Problem im Körper der Frage nicht. –