ASP.NET Core 2.2 возвращает «NotSupportedException: коллекция имела фиксированный размер» при вставке «многие ко многим» - PullRequest
0 голосов
/ 04 мая 2019

Я получил "NotSupportedException: Коллекция имела фиксированный размер" при попытке вставить в таблицу ссылок в Многие-ко-многим в ASP.NET Core 2,2 . Я могу вставить значения вручную в SQL Server!

Мои сущности:

    public class Product
    {
        [key]
        public int Id {get;set;}

        public ICollection<ProductCategory> ProductCategories { get; set; } = new List<ProductCategory>();
    }
    public class Category
    {
        [key]
        public int Id {get;set;}

        public string Name { get; set; }

        public ICollection<ProductCategory> ProductCategories { get; set; } = new List<ProductCategory>();

    }
    public class ProductCategory
    {
        [Key]
        public int ProductId { get; set; }
        public Product Product { get; set; }

        [Key]
        public int CategoryId { get; set; }
        public Category Category { get; set; }
    }

в DbContext:

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

            modelBuilder.Entity<ProductCategory>().HasKey(t => new { t.ProductId, t.CategoryId });


            modelBuilder.Entity<ProductCategory>()
                .HasOne(bc => bc.Product)
                .WithMany(b => b.ProductCategories)
                .HasForeignKey(bc => bc.ProductId);

            modelBuilder.Entity<ProductCategory>()
                .HasOne(bc => bc.Category)
                .WithMany(c => c.ProductCategories)
                .HasForeignKey(bc => bc.CategoryId);

            base.OnModelCreating(modelBuilder);
        }

        public DbSet<Product> Products { get; set; }
        public DbSet<Category> Categories { get; set; }
        public DbSet<ProductCategory> ProductCategories {get; set;}

Я пытаюсь вставить записи в Товар и категорию, Записи вставлены без проблем. Но как только я пытаюсь вставить связывающие записи, я получаю «NotSupportedException: Коллекция имеет фиксированный размер» ошибка.

Вставка:

            var Electronics = new Category
            {
                Name = "Electronics",
            };

            var Exir = new Product
            {
                Name = "Exir",
            };

            var pc1 = new ProductCategory();

            bc1.Product = Exir ;
            bc1.Category = Electronics;
            Exir.ProductCategories.Add(pc1);

            sqlContext.Categories.Add(Electronics);
            sqlContext.Products.Add(Exir);
            sqlContext.SaveChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...