Ich habe eine Methode, die mir die groupID von Benutzern gibt und dann möchte ich die Nachrichten basierend auf der GroupID des Benutzers erhalten.
%Vor%hier rufe ich die obige Methode auf:
%Vor%und das ist der Fehler:
Typ kann nicht implizit konvertiert werden '
System.Collections.Generic.IEnumerable<MeetingBoard.Model.News>
' zu '%Code%'. Eine explizite Konvertierung existiert (bist du eine Besetzung fehlt?)
Diese Zeile setzt eine Variable, die als eine einzelne Instanz von News definiert ist, auf eine Instanz von IEnumerable:
%Vor%Sie möchten zu
wechseln %Vor%Im Grunde versuchen Sie, eine Sammlung von Nachrichten auf eine einzige Referenz von News zu setzen.
Getnews
gibt eine IEnumerable<News>
(d. h. mehrere Nachrichten) zurück und Sie versuchen, sie News news
zuzuordnen (d. h. ein einzelnes News-Element). Das funktioniert nicht.
Es gibt zwei Möglichkeiten, je nachdem, was Sie tun möchten.
Wenn Sie alle Nachrichten verwenden möchten, ändern Sie News news
in IEnumerable<News>
:
Wenn Sie nur eine einzige Nachricht verwenden möchten, verwenden Sie FirstOrDefault
:
Je nachdem, was Sie erwarten, können Sie auch einen der folgenden verwenden:
First()
: Sie erwarten, dass Getnews
immer mindestens eine Nachricht zurückgibt. Dies wird eine Ausnahme auslösen, wenn keine Nachrichten zurückgegeben werden. Single()
: Sie erwarten, dass Getnews
immer genau eine Nachricht zurückgibt. Dies wird eine Ausnahme auslösen, wenn mehr als eine oder null Nachrichten zurückgegeben werden. SingleOrDefault()
: Sie erwarten, dass null oder eine Nachricht zurückgegeben wird. Dies wird eine Ausnahme auslösen, wenn mehr als eine Nachricht zurückgegeben wird. return newsRepository.GetMany(constraint);
gibt IEnumerable<News>
zurück, das sollten Sie tun:
gibt das erste News
zurück, wenn es in newRepository
gefunden wird, andernfalls null
Tags und Links asp.net-mvc c#