0
I가 엔티티 프레임 워크 코어 1.1에서 다음 엔티티 :System.AggregateException가 발생했습니다 - 컬렉션 수정
public class Question {
public Int32 Id { get; set; }
public Int32 AuthorId { get; set; }
public String Content { get; set; }
public virtual User Author { get; set; }
public virtual ICollection<Answer> Answers { get; set; }
}
public class Answer {
public Int32 Id { get; set; }
public Int32 QuestionId { get; set; }
public Int32 AuthorId { get; set; }
public String Content { get; set; }
public virtual Question Question { get; set; }
public virtual User Author { get; set; }
}
public class User : IdentityUser<Int32> {
public virtual ICollection<Answer> Answers { get; set; } = new List<Answer>();
public virtual ICollection<Question> Questions { get; set; } = new List<Question>();
}
public class Context : IdentityDbContext<User, Role, Int32> {
public DbSet<Answer> Answers { get; set; }
public DbSet<Question> Questions { get; set; }
public Context(DbContextOptions<Context> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder builder) {
base.OnModelCreating(builder);
builder.Entity<Question>(b =>
b.ToTable("Questions");
b.HasKey(x => x.Id);
b.Property(x => x.Content).HasMaxLength(400).IsRequired(true);
b.HasOne(x => x.Author).WithMany(x => x.Questions).HasForeignKey(x => x.AuthorId).IsRequired(true).OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<Answer>(b =>
b.ToTable("Answers");
b.HasKey(x => x.Id);
b.Property(x => x.Content).HasMaxLength(4000).IsRequired(true);
b.HasOne(x => x.Author).WithMany(x => x.Answers).HasForeignKey(x => x.AuthorId).IsRequired(true).OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.Question).WithMany(x => x.Answers).HasForeignKey(x => x.AuthorId).IsRequired(true).OnDelete(DeleteBehavior.Cascade);
});
}
}
나는 (내가 하나를 추가하고 다음 코드) 질문 목록을 만들려고 :
List<Question> questions = new List<Question>();
questions.Add(new Question {
Approved = DateTime.UtcNow,
Author = context.Users.First(),
Content = "question",
Created = DateTime.UtcNow,
IsApproved = true,
Level = context.Levels.First(),
Updated = DateTime.UtcNow,
Answers = new List<Answer> {
new Answer {
Approved = DateTime.UtcNow,
Author = context.Users.Last(),
Content = "answer",
Created = DateTime.UtcNow,
IsApproved = true,
Updated = DateTime.UtcNow
}
}
});
context.AddRange(questions);
await context.SaveChangesAsync();
나는 다음과 같은 오류 얻을 질문에 추가 할 때이를 작업했다
System.AggregateException occurred
InvalidOperationException: Collection was modified; enumeration operation may not execute.
을 EntityFramework 1.0.1. 1.1로 마이그레이션 할 때 오류가 발생했습니다.
내가 코드 줄 Author = context.Users.Last(),
에 응답하면 올바르게 작동합니다.
이 나는 뭔가를 놓치고 있습니까?