我在 MVC4 中有一个Playlist
类和一个类。Song
规则:
- 一首歌曲可以在 0 个或多个播放列表中。
- 一个播放列表可以包含 0 首或更多首歌曲。
所以我所做的就是创建这个:
public class Playlist
{
public int PlaylistID { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public virtual IList<PlaylistSongs> PlaylistSongs { get; set; }
}
public class Song
{
public int SongID { get; set; }
public string Title { get; set; }
public string SongArtURL { get; set; }
public virtual Artist Artist { get; set; }
public virtual Genre Genre { get; set; }
public IList<PlaylistSongs> PlaylistSongs { get; set; }
public IList<Album> Albums { get; set; }
}
public class PlaylistSongs
{
public int PlaylistID { get; set; }
public int SongID { get; set; }
public virtual Playlist Playlist { get; set; }
public virtual Song Song { get; set; }
public int NumberVotes { get; set; }
}
我也被OnModelCreating
这样覆盖:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<PlaylistSongs>()
.HasKey(cp => new { cp.SongID, cp.PlaylistID });
modelBuilder.Entity<Playlist>()
.HasMany(c => c.PlaylistSongs)
.WithRequired()
.HasForeignKey(cp => cp.SongID);
modelBuilder.Entity<Song>()
.HasMany(p => p.PlaylistSongs)
.WithRequired()
.HasForeignKey(cp => cp.PlaylistID);
}
然而,问题。想象一下,如果我想创建一个Song
最初没有附加到任何Playlist
(工作正常)的歌曲,然后将该歌曲添加到播放列表中。由于播放列表不包含歌曲列表,而是包含播放列表歌曲列表,我该怎么做?
我想要的是:
- 创建歌曲列表(独立)
- 将该歌曲列表添加到播放列表
- Code First Migrations Seed 方法将在 PlaylistSongs 表中自动创建所需的关联。
- 然后我可以让人们对某个播放列表中的歌曲进行投票。
- 该字段
NumberVotes
将相应更改。
谢谢你。