0

Entity Framework を作成しました。テーブルに新しい曲と新しいアルバムを追加しようとしています。たとえば、新しい曲を追加しようとすると、以下の方法を使用すると、s.Artist.ArtistName で「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と表示されます。ドロップダウン メニューにアーティストのリストを表示する Web フォームがあり、そのアーティストの新しい曲を追加したいと考えています。それ、どうやったら出来るの?

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;
    }
}

Artist テーブルのフレームワークには、ArtistID、ArtistName、および WikiPediaURL があります。アルバムと曲のナビゲーション プロパティがあります。1 対多としてソングに、1 対多としてアルバムにリンクされます。

これには、SongID、SongTitle、Artist_ArtistID を持つ Song テーブルがあります。ArtistとAlbumのナビゲーションプロパティを持っています。これは多対多として Albums テーブルにリンクされています。

最後に、Album テーブルには、AlbumID、AlbumTitle、CoverArt、Year、Genre、MimeType、および Artist_ArtistID があります。Artist と Song のナビゲーション プロパティを持っています。

4

1 に答える 1

0

Artist プロパティは自動的に作成されません。最初にアーティストのインスタンスを作成する必要があります。

    var s = new Song();
    s.SongTitle = SongName;
    s.Artist = new Artist();
    s.Artist.ArtistName = artistName;
于 2012-04-14T20:04:22.947 に答える