public void Configure(EntityTypeBuilder <PersonFluent> builder)
        {
            builder.Property(c => c.FirstName)
            .HasMaxLength(50)
            .IsRequired()
            .IsUnicode()
            .HasColumnName("FName")
            .HasColumnType("VARCHAR(55)");
            builder.Property(c => c.BirthDate)
            .HasColumnType("DateTime");
            builder.Property(c => c.LastName)
            .IsRequired()
            .IsUnicode()
            .HasColumnType("NVARCHAR(46)")
            .HasColumnName("LName");
            builder.Property(c => c.Age).HasPrecision(10, 4);
            //Value Conversions
            builder.Property(c => c.PersonType).HasConversion <string>().HasColumnType("NVARCHAR(20)").HasColumnName("PType");

            var valueConvertor =
                new Microsoft.EntityFrameworkCore.Storage.ValueConversion.ValueConverter <NationalCode, string>
                    (nationalCode => nationalCode.Value, str => new NationalCode(str));

            builder.Property(c => c.NationalCode).HasConversion(valueConvertor).HasColumnName("NCode").HasColumnType("NVARCHAR(10)");
            //
            builder.Ignore(c => c.FullName);
        }
Exemple #2
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            var converter = new Microsoft.EntityFrameworkCore.Storage.ValueConversion.ValueConverter <DateTime, DateTime>(
                v => DateTime.Now,
                v => v
                );

            modelBuilder.Entity <Category>(entity =>
            {
                entity.Property(e => e.Description).HasMaxLength(255);

                entity.Property(e => e.Name)
                .IsRequired()
                .HasMaxLength(50);
            });

            modelBuilder.Entity <Product>(entity =>
            {
                entity.Property(e => e.CreatedDate).HasColumnType("datetime");

                entity.Property(e => e.Description).IsRequired();

                entity.Property(e => e.ModifiedDate).HasColumnType("datetime").HasConversion(converter);

                entity.Property(e => e.Name)
                .IsRequired()
                .HasMaxLength(128);

                entity.Property(e => e.Price).HasColumnType("decimal(18, 3)");

                entity.HasOne(d => d.Category)
                .WithMany(p => p.Product)
                .HasForeignKey(d => d.CategoryId)
                .OnDelete(DeleteBehavior.ClientSetNull)
                .HasConstraintName("FK_Product_Category_Id");
            });

            modelBuilder.Entity <ProductView>(entity =>
            {
                entity.ToTable("ProductView", "stats");

                entity.HasOne(d => d.Product)
                .WithMany(p => p.ProductView)
                .HasForeignKey(d => d.ProductId)
                .OnDelete(DeleteBehavior.ClientSetNull)
                .HasConstraintName("FK_ProductView_Product_Id");
            });
        }