我有一个创建的实体框架。我正在尝试将新歌曲和新专辑添加到表中。例如,当我尝试添加一首新歌曲时,我使用了下面的方法,它告诉我 s.Artist.ArtistName 上的“对象引用未设置为对象的实例”。我有一个在下拉菜单中显示艺术家列表的网络表单,现在我想为该艺术家添加一首新歌。我怎么做?
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;
}
}
艺术家表的框架有 ArtistID、ArtistName 和 WikiPediaURL。它具有专辑和歌曲的导航属性。它以 1 对多的形式与歌曲相关联,以 1 对多的形式与专辑相关联。
它有一个 Song 表,其中有一个 SongID、SongTitle 和 Artist_ArtistID。它具有艺术家和专辑的导航属性。它以多对多的方式链接到相册表。
最后,Album 表有一个 AlbumID、AlbumTitle、CoverArt、Year、Genre、MimeType 和 Artist_ArtistID。它具有 Artist 和 Song 的导航属性。