/// <summary> /// Build model for mapping entity type do database table. /// </summary> /// <param name="builder">Entity type builder.</param> /// <returns>Model for mapping entity type do database table.</returns> protected virtual EntityTypeTableModel BuildEntityModel(EntityTypeBuilder <TEntity> builder) { var model = new EntityTypeTableModel(this.TableName); builder.ToTable(this.TableName); builder.Ignore(t => ((IPersistentObject)t).IsTransient); builder.Ignore(t => ((IPersistentObject)t).IsDeleted); builder.Ignore(t => t.DisplayValue); builder.HasKey(t => t.Id); var Id = builder.Property(t => t.Id).IsRequired(); var idSequenceName = this.namingConvention.ApplyToSequenceName($"{this.TableName}_Id"); switch (this.connectionSettings.ServerType) { case DatabaseServerType.MSSQLServer: SqlServerPropertyBuilderExtensions.UseHiLo(Id, idSequenceName); break; case DatabaseServerType.PostgreSQL: NpgsqlPropertyBuilderExtensions.UseHiLo(Id, idSequenceName); break; } var TypeGuid = builder.Property(t => t.TypeGuid).IsRequired(); model.Properties.Add(Id); model.Properties.Add(TypeGuid); return(model); }
public override void Map(EntityTypeBuilder <Customer> builder) { builder.ToTable(nameof(Customer), CRMConstant.Schema); builder.HasKey(args => args.CustomerID); var propertyBuilder = builder.Property(args => args.CustomerID); NpgsqlPropertyBuilderExtensions.UseHiLo(propertyBuilder, CRMConstant.Hilo, CRMConstant.Schema); SqlServerPropertyBuilderExtensions.UseHiLo(propertyBuilder, CRMConstant.Hilo, CRMConstant.Schema); builder.Property(args => args.Name).HasMaxLength(CRMConstant.NameLength).IsRequired(); builder.HasIndex(args => args.Name).IsUnique(); builder.Property(args => args.Company).HasMaxLength(CRMConstant.NameLength).IsRequired(); builder.HasMany(args => args.Contacts).WithOne(args => args.Customer).HasForeignKey(args => args.CustomerID).IsRequired(); builder.HasMany(args => args.Licenses).WithOne(args => args.Customer).HasForeignKey(args => args.CustomerID).IsRequired(); base.Map(builder); }
protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); modelBuilder.HasSequence("catalog_brand_hilo") .IncrementsBy(10); modelBuilder.HasSequence("catalog_hilo") .IncrementsBy(10); modelBuilder.HasSequence("catalog_type_hilo") .IncrementsBy(10); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.Basket", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property <int>("Id"), 1L, 1); b.Property <string>("BuyerId") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.HasKey("Id"); b.ToTable("Baskets"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.BasketItem", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property <int>("Id"), 1L, 1); b.Property <int>("BasketId") .HasColumnType("int"); b.Property <int>("CatalogItemId") .HasColumnType("int"); b.Property <int>("Quantity") .HasColumnType("int"); b.Property <decimal>("UnitPrice") .HasColumnType("decimal(18,2)"); b.HasKey("Id"); b.HasIndex("BasketId"); b.ToTable("BasketItems"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogBrand", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseHiLo(b.Property <int>("Id"), "catalog_brand_hilo"); b.Property <string>("Brand") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.ToTable("CatalogBrands"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogItem", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseHiLo(b.Property <int>("Id"), "catalog_hilo"); b.Property <int>("CatalogBrandId") .HasColumnType("int"); b.Property <int>("CatalogTypeId") .HasColumnType("int"); b.Property <string>("Description") .HasColumnType("nvarchar(max)"); b.Property <string>("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property <string>("PictureUri") .HasColumnType("nvarchar(max)"); b.Property <decimal>("Price") .HasColumnType("decimal(18,2)"); b.HasKey("Id"); b.HasIndex("CatalogBrandId"); b.HasIndex("CatalogTypeId"); b.ToTable("Catalog", (string)null); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogType", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseHiLo(b.Property <int>("Id"), "catalog_type_hilo"); b.Property <string>("Type") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.ToTable("CatalogTypes"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property <int>("Id"), 1L, 1); b.Property <string>("BuyerId") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property <DateTimeOffset>("OrderDate") .HasColumnType("datetimeoffset"); b.HasKey("Id"); b.ToTable("Orders"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.OrderItem", b => { b.Property <int>("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property <int>("Id"), 1L, 1); b.Property <int?>("OrderId") .HasColumnType("int"); b.Property <decimal>("UnitPrice") .HasColumnType("decimal(18,2)"); b.Property <int>("Units") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("OrderId"); b.ToTable("OrderItems"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.BasketItem", b => { b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.Basket", null) .WithMany("Items") .HasForeignKey("BasketId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogItem", b => { b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogBrand", "CatalogBrand") .WithMany() .HasForeignKey("CatalogBrandId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.CatalogType", "CatalogType") .WithMany() .HasForeignKey("CatalogTypeId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("CatalogBrand"); b.Navigation("CatalogType"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b => { b.OwnsOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Address", "ShipToAddress", b1 => { b1.Property <int>("OrderId") .HasColumnType("int"); b1.Property <string>("City") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b1.Property <string>("Country") .IsRequired() .HasMaxLength(90) .HasColumnType("nvarchar(90)"); b1.Property <string>("State") .HasMaxLength(60) .HasColumnType("nvarchar(60)"); b1.Property <string>("Street") .IsRequired() .HasMaxLength(180) .HasColumnType("nvarchar(180)"); b1.Property <string>("ZipCode") .IsRequired() .HasMaxLength(18) .HasColumnType("nvarchar(18)"); b1.HasKey("OrderId"); b1.ToTable("Orders"); b1.WithOwner() .HasForeignKey("OrderId"); }); b.Navigation("ShipToAddress") .IsRequired(); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.OrderItem", b => { b.HasOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", null) .WithMany("OrderItems") .HasForeignKey("OrderId"); b.OwnsOne("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.CatalogItemOrdered", "ItemOrdered", b1 => { b1.Property <int>("OrderItemId") .HasColumnType("int"); b1.Property <int>("CatalogItemId") .HasColumnType("int"); b1.Property <string>("PictureUri") .HasColumnType("nvarchar(max)"); b1.Property <string>("ProductName") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b1.HasKey("OrderItemId"); b1.ToTable("OrderItems"); b1.WithOwner() .HasForeignKey("OrderItemId"); }); b.Navigation("ItemOrdered"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate.Basket", b => { b.Navigation("Items"); }); modelBuilder.Entity("Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate.Order", b => { b.Navigation("OrderItems"); }); #pragma warning restore 612, 618 }