In meiner Aktion Methode, die ich leite die folgende Abfrage, die eine Liste zurückgibt:Wie konvertiert man anonyme Liste in der Liste von RoleViewModel?
var list = db.WorkRoles.
Join(db.WorkRolesUsersDetails,
o => o.WorkRoleId, od => od.WorkRoleId,
(o, od) => new
{
WorkRoleId = o.WorkRoleId,
RoleName = o.RoleName,
RoleDescription = o.RoleDescription,
CompanyId = o.CompanyId,
WRUDId = od.WRUDId,
UserDetailsId = od.UserDetailsId,
FocusStart = od.FocusStart,
FocusEnd = od.FocusEnd
}).ToList();
Ich habe ein viemodel im gleichen Format wie folgt aussehen:
public class RoleViewModel
{
public RoleViewModel(int workRoleId, string roleName, string roleDescription, int companyId, int wRUDId, string userDetailsId, DateTime focusStart, DateTime focusEnd)
{
WorkRoleId = workRoleId;
RoleName = roleName;
RoleDescription = roleDescription;
CompanyId = companyId;
WRUDId = wRUDId;
UserDetailsId = userDetailsId;
FocusStart = focusStart;
FocusEnd = focusEnd;
}
int WorkRoleId { get; set; }
string RoleName { get; set; }
string RoleDescription { get; set; }
int CompanyId { get; set; }
int WRUDId { get; set; }
string UserDetailsId { get; set; }
DateTime FocusStart { get; set; }
DateTime FocusEnd { get; set; }
}
Was ist der beste Weg ist, zu konvertieren das Ergebnis meiner Abfrage zu einer Liste meines Viewmodels?
Gibt es einen Grund, warum Sie werden es sich um eine generische Liste an erster Stelle zu machen? Sie sollten in der Lage sein, direkt in ein neues Objekt '=> new RoleViewModel() {Eigenschaftszuweisung}' – JaredStroeb
@JaredStroeb auszuwählen, wenn ich das versuche (in einer der Antworten hier vorgeschlagen) gibt es mir diese Ausnahme: Eine Ausnahme vom Typ ' System.NotSupportedException trat in EntityFramework.SqlServer.dll auf, wurde aber nicht im Benutzercode verarbeitet Weitere Informationen: In LINQ to Entities werden nur parameterlose Konstruktoren und Initialisierer unterstützt. –
Ja, ich habe das parameterlose Konstruktorproblem kennengelernt, aber es sollte den generischen Konstruktor gefolgt von Eigenschaftszuweisungen akzeptieren. Gibt es eine innere Ausnahme oder mehr Informationen in der NotSupportedException? Ist die Antwort von @Michael auch eine Ausnahme? (Am Ende des Beispiels ist möglicherweise eine andere '.ToList()' erforderlich.) – JaredStroeb