小编Gar*_*ett的帖子

EF Core 5 与同一个表的多对多关系?

一个产品可以有许多其他相关产品。以下内容完美地创建了联接表,但是当我将一个产品添加到另一个产品的相关产品时,我在保存时收到以下错误:“尝试保存更改时,‘ProductAssociation.ProductID’的值未知。” 这是因为该属性也是外键的一部分,而关系中的主要实体是未知的。

modelBuilder.Entity<Product>()
                .HasMany(x => x.RelatedProducts)
                .WithMany(r => r.RelatedProducts)
                .UsingEntity<ProductAssociation>(
                    x => x.HasOne(p => p.RelatedProduct).WithMany().HasForeignKey(f => f.RelatedProductID),
                    x => x.HasOne(p => p.Product).WithMany().HasForeignKey(f => f.ProductID).OnDelete(DeleteBehavior.NoAction),
                    x => x.ToTable("ProductAssociations"));
       
Run Code Online (Sandbox Code Playgroud)

many-to-many entity-framework-core

1
推荐指数
1
解决办法
2506
查看次数