Ich habe eine Reihe von Repositories in meiner App, und ich möchte versuchen, ein generisches Repository zu machen, um Code-Duplizierung zu reduzieren.Wie Lambda-Werte an ein generisches Repository übergeben werden
Eine Anforderung, die wiederholt auftritt, ist die Notwendigkeit, meine Entitäten in einer Dropdown-Liste aufzulisten.
In meinem aktuellen konkreten Repository Ich habe dies:
public IEnumerable GetSelectList()
{
return _context.Cultures.Select(x => new SelectListItem
{
Text = x.CultureKey,
Value = x.CultureID.ToString()
}).ToList();
}
was So würde ich eine generische GetSelectList
Funktion zu tun ist, die ich angeben lassen, welche Werte ich für die Text
und Value
Felder verwenden wollte in Mein Auswahllistenelement (im obigen Code sind dies CultureKey
und CultureID
).
Ich bin nicht sicher, wie ich diese Werte in einem generischen Repository konfigurierbar machen würde. Gibt es eine Möglichkeit, String-Werte als Lambda-Werte auszuwerten? Oder gibt es einen anderen Weg, um zu erreichen, was ich will?
SelectListItem ist "View" verwandt und es wird Ihnen in Zukunft Probleme bereiten, wenn Sie View Logic mit Domain-Logik mischen. Alternativ können Sie ein Ansichtshilfsprogramm oder ein Ansichtsmodell hinzufügen, das bestimmte Felder in Schlüssel und Werte konvertiert. – axlj