2012-04-14 4 views
0

Ich habe ein Entity Framework erstellt. Ich versuche, eine neue Songs und ein neues Album in die Tabelle hinzuzufügen. Zum Beispiel, wenn ich versuche, einen neuen Song hinzuzufügen, habe ich die Methode unten verwendet, und es sagt mir "Objektreferenz nicht auf eine Instanz eines Objekts festgelegt" auf s.Artist.ArtistName. Ich habe ein Webformular, das eine Liste von Künstlern in einem Dropdown-Menü zeigt und jetzt möchte ich ein neues Lied für diesen Künstler hinzufügen. Wie mache ich das?ASP.NET Laden von Daten in Tabelle mit Navigationseigenschaft

public Song AddNewSongNav(String ArtistName, String SongName) 
{ 
    using (var context = new MyEntities()) 
    { 
     var s = new Song(); 
     s.SongTitle = SongName; 
     s.Artist.ArtistName = ArtistName; 
     s.Artist.WikipediaUrl="http://en.wikipedia.org/Testing"; 

     context.Songs.AddObject(s); 
     context.SaveChanges(); 
     return s; 
    } 
} 

Das Rahmenwerk für den Künstlertisch hat ArtistID, ArtistName und WikiPediaURL. Es hat eine Navigationseigenschaft für Album und Song. Es ist mit Song als 1 zu viele und Album als 1 zu Viele verknüpft.

Es hat eine Song-Tabelle, die eine SongID, SongTitle und Artist_ArtistID hat. Es hat eine Navigationseigenschaft von Künstler und Album. Es ist als viele zu viele an die Tabelle Alben gebunden.

Schließlich hat die Album-Tabelle eine AlbumID, Albumtitle, CoverArt, Jahr, Genre, MimeType und Artist_ArtistID. Es hat eine Navigationseigenschaft von Artist und Song.

Antwort

0

The Artist Eigenschaft wird nicht automatisch erstellt - Sie haben zunächst eine Instanz des Künstlers zu erstellen:

var s = new Song(); 
    s.SongTitle = SongName; 
    s.Artist = new Artist(); 
    s.Artist.ArtistName = artistName; 
+0

Vielen Dank für Ihre schnelle Antwort. Dadurch konnte ich einen neuen Künstler und ein neues Lied zusammenfügen. Was ich versuche, ist, dass der Benutzer einen Künstler aus einer Dropdown-Liste auswählen kann und ich dann diesem Künstler einen Song zuordnen möchte. Wenn ich das obige mache, wird es einen neuen Künstler schaffen und ihn mit dem Lied assoziieren. Hast du eine Idee, wie ich den Künstler in der Tabelle referenzieren und mit einem neuen Lied assoziieren würde? – Joe24

Verwandte Themen