я следующие объекты:Entitiy Framework 6 - Сохранить связанные объекты
public class Artist
{
[Key]
public string ArtistId { get; set; }
public string Name { get; set; }
public virtual ICollection<Genre> Genres { get; set; }
}
public class Genre
{
[Key]
public int GenreId { get; set; }
public string Name { get; set; }
public virtual ICollection<Artist> Artist { get; set; }
}
В моей программе я создаю несколько художников и хочу сохранить их:
using (var context = new ArtistContext())
{
var artists = _fullArtists.Select(x => x.ToArtist());
foreach (var artist in artists)
{
context.Artists.AddOrUpdate(artist);
}
context.SaveChanges();
}
художников имеет свойство Genre
. К сожалению, при звонке context.SaveChanges();
, только художники получают сохраненную базу данных, а жанры - нет.
Должен ли я настроить что-то особенное, чтобы также связанные объекты (жанр) автоматически сохранялись в базе данных?
Заранее спасибо
Edit: .ToArtist()
выглядит следующим образом:
public static class ArtistExtensions
{
public static Artist ToArtist(this FullArtistWrapper value)
{
if (value == null) { throw new ArgumentNullException(); }
return new Artist
{
ArtistId = value.Id,
Name = value.Name,
Genres = new List<Genre>(value.Genres.Select(x => x.ToGenre()))
};
}
}
И в .ToGenre()
так:
public static class GenreExtensions
{
public static Genre ToGenre(this string value)
{
return new Genre
{
Name = value
};
}
}
Что ваш код ToArtist()? Вы добавляете жанр в контекст? – romanoza
hey @romanoza благодарит вас за комментарий, я добавил код к вопросу :-) – xeraphim