Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

35 Zeilen
1.1KB

  1. using CartWise.Domain.Entities;
  2. using CartWise.Infrastructure.Identity;
  3. using Microsoft.EntityFrameworkCore;
  4. using Microsoft.EntityFrameworkCore.Metadata.Builders;
  5. namespace CartWise.Infrastructure.Data.Configurations;
  6. public class PurchaseConfiguration : IEntityTypeConfiguration<Purchase>
  7. {
  8. public void Configure(EntityTypeBuilder<Purchase> builder)
  9. {
  10. builder.HasKey(p => p.PurchaseId);
  11. builder.HasOne<Household>()
  12. .WithMany()
  13. .HasForeignKey(p => p.HouseholdId)
  14. .OnDelete(DeleteBehavior.Cascade);
  15. builder.HasOne<StoreLocation>()
  16. .WithMany()
  17. .HasForeignKey(p => p.StoreLocationId)
  18. .OnDelete(DeleteBehavior.SetNull);
  19. builder.HasOne<ApplicationUser>()
  20. .WithMany()
  21. .HasForeignKey(p => p.PurchasedByUserId)
  22. .OnDelete(DeleteBehavior.Restrict);
  23. builder.HasIndex(p => new { p.HouseholdId, p.PurchasedUtc });
  24. builder.Metadata.FindNavigation(nameof(Purchase.Items))!
  25. .SetPropertyAccessMode(PropertyAccessMode.Field);
  26. }
  27. }

Powered by TurnKey Linux.