コード例 #1
0
 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
     modelBuilder.Entity <Student>(x =>
     {
         x.ToTable("Student").HasKey(k => k.Id);
         x.Property(p => p.Id).HasColumnName("StudentID");
         x.Property(p => p.Email)
         .HasConversion(p => p.Value, p => Email.Create(p).Value);
         x.OwnsOne(p => p.Name, p =>
         {
             p.Property <long?>("NameSuffixID").HasColumnName("NameSuffixID");
             p.Property(pp => pp.First).HasColumnName("FirstName");
             p.Property(pp => pp.Last).HasColumnName("LastName");
             p.HasOne(pp => pp.Suffix).WithMany().HasForeignKey("NameSuffixID").IsRequired(false);
         });
         x.HasOne(p => p.FavoriteCourse).WithMany();
         x.HasMany(p => p.Enrollments).WithOne(p => p.Student)
         .OnDelete(DeleteBehavior.Cascade)
         .Metadata.PrincipalToDependent.SetPropertyAccessMode(PropertyAccessMode.Field);
     });
     modelBuilder.Entity <Suffix>(x =>
     {
         x.ToTable("Suffix").HasKey(p => p.Id);
         x.Property(p => p.Id).HasColumnName("SuffixID");
         x.Property(p => p.Name);
     });
     modelBuilder.Entity <Course>(x =>
     {
         x.ToTable("Course").HasKey(k => k.Id);
         x.Property(p => p.Id).HasColumnName("CourseID");
         x.Property(p => p.Name);
     });
     modelBuilder.Entity <Enrollment>(x =>
     {
         x.ToTable("Enrollment").HasKey(k => k.Id);
         x.Property(p => p.Id).HasColumnName("EnrollmentID");
         x.HasOne(p => p.Student).WithMany(p => p.Enrollments);
         x.HasOne(p => p.Course).WithMany();
         x.Property(p => p.Grade);
     });
 }
コード例 #2
0
        public IActionResult Create([FromBody] CreateCustomerRequest request)
        {
            Result <CustomerName> customerName = CustomerName.Create(request.Name);
            Result <Email>        email        = Email.Create(request.Email);

            Result result = Result.Combine(customerName, email);

            if (result.IsFailure)
            {
                return(Error(result.Error));
            }

            if (_customerRepository.GetByEmail(email.Value) != null)
            {
                return(Error("Email is already in use: " + request.Email));
            }

            var customer = new Customer(customerName.Value, email.Value);

            _customerRepository.Save(customer);

            return(Ok());
        }