Я немного запутался по этому поводу, я реализую Список желаний, в котором несколько пользователей могут добавлять одну и ту же сущность (Продукт) в свой список.Я расширил класс пользовательских учетных записей и добавил ICollection<Product>
, но я не могу понять, как несколько пользователей могут ссылаться на один и тот же продукт с точки зрения внешних ключей, потому что, когда пользователь добавляет продукт в свой список пожеланий, он удаляется из предыдущегоПользователь в качестве внешнего ключа теперь ссылается на нового пользователя.очевидно, моя логика ошибочна, и я неправильно понял, как должны быть определены отношения. Не могли бы вы указать мне правильное направление?
здесь находится объект Product
public class Product
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int ProductId { get; set; }
public string ProductName { get; set; }
public virtual ProductType ProductType { get; set; }
[ForeignKey("Category")]
public int SubcategoryFK { get; set; }
public virtual SubCategory Category { get; set; }
public decimal Price { get; set; }
public int NumberOfItems { get; set; }
public string ImageUrl { get; set; }
public string IsInStock { get; set; }
public string ShortDescription { get; set; }
public string LongDescription { get; set; }
[ForeignKey("SalesUser")]
public string SalesUserFK { get; set; }
public virtual ApplicationUser SalesUser { get; set; }
, и отношения настроены следующим образомэто
modelBuilder.Entity<ApplicationUser>()
.HasMany(a => a.Products)
.WithOne(p => p.SalesUser).HasForeignKey(z => z.SalesUserFK).OnDelete(DeleteBehavior.ClientSetNull);