CustomerMapping.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using GreenTree.Strohrmann.ERP.Core.Domain.Business;
  2. using GreenTree.Strohrmann.ERP.Core.Domain.Shared;
  3. using GreenTree.Strohrmann.ERP.Domain.Model.Shared;
  4. using Microsoft.EntityFrameworkCore;
  5. using Microsoft.EntityFrameworkCore.Metadata.Builders;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. namespace GreenTree.Strohrmann.ERP.Domain.Model.Business
  10. {
  11. public class CustomerMapping : TrackedEntityMapping<Customer>
  12. {
  13. public override void Configure(EntityTypeBuilder<Customer> builder)
  14. {
  15. base.Configure(builder);
  16. builder.ToTable("Customers");
  17. builder.HasKey(u => u.Id);
  18. builder.Property(u => u.Id)
  19. .ValueGeneratedOnAdd();
  20. builder.HasOne(u => u.Title)
  21. .WithMany(d => d.Customers)
  22. .IsRequired()
  23. .OnDelete(DeleteBehavior.Restrict);
  24. builder.Property(u => u.Firstname)
  25. .IsRequired();
  26. builder.Property(u => u.Lastname)
  27. .IsRequired();
  28. builder.Property(u => u.CompanyName)
  29. .IsRequired(false);
  30. builder.Property(u => u.IsBusiness)
  31. .HasDefaultValue(false)
  32. .IsRequired();
  33. builder.Property(u => u.Address)
  34. .IsRequired();
  35. builder.Property(u => u.Town)
  36. .IsRequired();
  37. builder.Property(u => u.ZipCode)
  38. .IsRequired();
  39. builder.Property(u => u.Country)
  40. .IsRequired();
  41. builder.HasOne(u => u.Tax)
  42. .WithMany(d => d.Customers)
  43. .IsRequired(false)
  44. .OnDelete(DeleteBehavior.Restrict);
  45. }
  46. }
  47. }