У меня есть пара простых моделей.Модель PlaylistEntry и модель Playlist, которая содержит коллекцию моделей PlaylistEntry.
Список воспроизведения:
public class Playlist
{
private ICollection<PlaylistEntry> playlistEntries;
public int PlaylistId { get; set; }
public string Name { get; set; }
public virtual ICollection<PlaylistEntry> PlaylistEntries
{
get => this.playlistEntries ?? (this.playlistEntries = new HashSet<PlaylistEntry>());
set => this.playlistEntries = value;
}
}
PlaylistEntry
public class PlaylistEntry
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PlaylistEntryId { get; set; }
public string FilePath { get; set; }
[ForeignKey("Playlist")]
public int PlaylistId { get; set; }
[Required]
public Playlist Playlist { get; set; }
}
Когда я добавляю PlaylistEntry в список воспроизведенияв отсоединенном состоянии я ожидаю, что когда я прикреплю и сохраню изменения, изменения в списке PlaylistEntries также будут сохранены.Они не сохраняются, и список пуст.
Вот мой код:
var playlist = new Playlist { Name = "My first playlist" };
using (var context = new MusicPlayerContext(stringBuilder))
{
context.Playlists.Add(playlist);
context.SaveChanges();
}
playlist.PlaylistEntries.Add(new PlaylistEntry { FilePath = "lkdfj", PlaylistId = playlist.PlaylistId });
using (var context = new MusicPlayerContext(stringBuilder))
{
context.Playlists.Attach(playlist);
context.Entry(playlist).State = EntityState.Modified;
context.SaveChanges();
}
using (var context = new MusicPlayerContext(stringBuilder))
{
context.Playlists.Include(x => x.PlaylistEntries).ToList();
}
Этот последний вызов ToList возвращает созданный мной список воспроизведения, но коллекция PlaylistEntries на нем пуста.
Может кто-нибудь заметить, что я делаю неправильно или предложить другое решение, пожалуйста?Я потратил около 7 часов на это и не могу понять, насколько я понимаю.