2017-01-27 2 views
1

Hallo Zusammen folgende meinen Code konvertieren:Lambda Expression - Fehler kann nicht implizit Typ `vicoapi.Pictures' auf` System.Collections.Generic.List <vicoapi.Pictures>‘(CS0029)

public class SampleData : DropCreateDatabaseIfModelChanges<VicoTvEntities> 
{ 
    protected override void Seed(VicoTvEntities context) 
    { 
     var pictures = new List<Pictures>{ 
      new Pictures { Name = "Testbild", Url="localhost/test" } 
     }; 
     var user = new List<User>{ 
      new User{Username="Muster", Password="Pass",Email="[email protected]",Bio="Musterbiografie", Pictures = pictures.Find(pic => pic.Name == "Testbild")} 
     }; 
    } 
} 

}

Ich versuche eine API zu erstellen und im Moment arbeite ich an der Verbindung der DB mit dem Code. Ich folge diesem Tutorial: https://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-4

Mein Problem ist, wenn ich versuche, das Bild hinzuzufügen, wird es nicht funktionieren, wegen dieser Konvertierung Fehler. Wie kann ich dieses Problem vermeiden und das Bild für den Benutzer implementieren? My-Source-Tree sieht wie folgt aus: Source Tree

Die Benutzerklasse sieht wie folgt:

public class User 
{ 
    public int IdUser { get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public string Bio { get; set; } 
    public List<Pictures> Pictures { get; set; } 
    public List<Follow> Following { get; set; } 
    public List<Follow> Followed { get; set; } 
} 

Der Fehler I sieht wie folgt erhalten:

/Users/Benutzername/vicotv-Backend /vicoapi/vicoapi/Models/SampleData.cs(126,126): Fehler CS0029: Typ `vicoapi.Pictures' kann nicht implizit in System.Collections.Generic.List 'konvertiert werden (CS0029) (vicoapi)

+0

Zeigen Sie die Definition der Klasse 'User' an. Sie Frage ist unklar, in seinem aktuellen Format – Nkosi

+0

@Nkosi jetzt habe ich die Klasse hinzufügen. –

+0

Dann adressiert die bereits gegebene Antwort das Problem. List.Find gibt eine einzelne Instanz zurück, die Sie einer Liste zuweisen möchten. Was war die Absicht? Willst du eine Sammlung oder einzelnes Objekt – Nkosi

Antwort

1

Obwohl Sie die Klasse nicht hier zeigen, ich ziemlich sicher bin, dass Ihre User-Klasse eine Eigenschaft definiert so etwas wie dieses hat:

public List<Pictures> Pictures { get; set; } 

Wenn das der Fall ist, müssen Sie die Eigenschaft zuweisen zu die ganze Liste wie folgt aus:

user.Pictures = pictures 

Wenn Sie ein Benutzer ein Bild nur in der Lage sein wollen, haben, dann müssen Sie die picture-Eigenschaft auf der Benutzer Klasse wie folgt definieren:

public Pictures Picture { get; set; } 

Wenn Sie die Bildeigenschaft so definieren, sollte sie mit Ihrem aktuellen Code funktionieren.

P.S. Ich würde definitiv empfehlen, Ihre "Bilder" -Klasse zu "Picture" umzubenennen. Im Allgemeinen sollten Sie die Singularform für Klassennamen verwenden. Schauen Sie sich at this page für weitere Informationen an.

+0

jetzt habe ich meine Bildklasse aktualisiert und habe es so gemacht, wie du es vorgeschlagen hast (public Pictures Picture {get; set;}). Wehen ich versuche, user.Picture einen weiteren Fehler angezeigt. Ich habe den gleichen Fehler und jetzt habe ich die Klasse hinzufügen, wie es ursprünglich war. Aber jetzt habe ich es getan, wie du es vorgeschlagen hast. –

+0

Edit: Jetzt funktioniert es, ich habe einen kleinen Fehler gemacht, ich habe vergessen, die s im Bild zu löschen. Vielen Dank! –

+0

Ich bin froh, dass ich helfen konnte. –

Verwandte Themen