diff --git a/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.Designer.cs b/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.Designer.cs new file mode 100644 index 000000000..765d1a652 --- /dev/null +++ b/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.Designer.cs @@ -0,0 +1,1214 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using VirtoCommerce.CatalogModule.Data.Repositories; + +namespace VirtoCommerce.CatalogModule.Data.Migrations +{ + [DbContext(typeof(CatalogDbContext))] + [Migration("20200528061450_ChangeAssociationDeleteBehavior")] + partial class ChangeAssociationDeleteBehavior + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.1.2") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.AssetEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ItemId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("LanguageCode") + .HasColumnType("nvarchar(5)") + .HasMaxLength(5); + + b.Property("MimeType") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Size") + .HasColumnType("bigint"); + + b.Property("Url") + .IsRequired() + .HasColumnType("nvarchar(2083)") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.HasIndex("ItemId"); + + b.ToTable("CatalogAsset"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.AssociationEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("AssociatedCategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("AssociatedItemId") + .HasColumnType("nvarchar(128)"); + + b.Property("AssociationType") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ItemId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Tags") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.HasKey("Id"); + + b.HasIndex("AssociatedCategoryId"); + + b.HasIndex("AssociatedItemId"); + + b.HasIndex("ItemId"); + + b.ToTable("Association"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DefaultLanguage") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("OwnerId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Virtual") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("Catalog"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CatalogLanguageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CatalogId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("Language") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("CatalogId"); + + b.ToTable("CatalogLanguage"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CatalogId") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("ParentCategoryId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TaxType") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.HasKey("Id"); + + b.HasIndex("CatalogId"); + + b.HasIndex("ParentCategoryId"); + + b.ToTable("Category"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryItemRelationEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CatalogId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("ItemId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("Priority") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CatalogId"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ItemId"); + + b.ToTable("CategoryItemRelation"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryRelationEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("SourceCategoryId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("TargetCatalogId") + .HasColumnType("nvarchar(128)"); + + b.Property("TargetCategoryId") + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("SourceCategoryId"); + + b.HasIndex("TargetCatalogId"); + + b.HasIndex("TargetCategoryId"); + + b.ToTable("CategoryRelation"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.EditorialReviewEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Comments") + .HasColumnType("nvarchar(max)"); + + b.Property("Content") + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ItemId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("Locale") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("ReviewState") + .HasColumnType("int"); + + b.Property("Source") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.HasKey("Id"); + + b.HasIndex("ItemId"); + + b.ToTable("EditorialReview"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.ImageEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("Group") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); + + b.Property("LanguageCode") + .HasColumnType("nvarchar(5)") + .HasMaxLength(5); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("SortOrder") + .HasColumnType("int"); + + b.Property("Url") + .IsRequired() + .HasColumnType("nvarchar(2083)") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ItemId"); + + b.ToTable("CatalogImage"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("AvailabilityRule") + .HasColumnType("int"); + + b.Property("CatalogId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("Code") + .IsRequired() + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DownloadExpiration") + .HasColumnType("datetime2"); + + b.Property("DownloadType") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("EnableReview") + .HasColumnType("bit"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Gtin") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("HasUserAgreement") + .HasColumnType("bit"); + + b.Property("Height") + .HasColumnType("decimal(18,2)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsBuyable") + .HasColumnType("bit"); + + b.Property("Length") + .HasColumnType("decimal(18,2)"); + + b.Property("ManufacturerPartNumber") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("MaxNumberOfDownload") + .HasColumnType("int"); + + b.Property("MaxQuantity") + .HasColumnType("decimal(18,2)"); + + b.Property("MeasureUnit") + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.Property("MinQuantity") + .HasColumnType("decimal(18,2)"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("PackageType") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("ParentId") + .HasColumnType("nvarchar(128)"); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("ProductType") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ShippingType") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("TaxType") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("TrackInventory") + .HasColumnType("bit"); + + b.Property("Vendor") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Weight") + .HasColumnType("decimal(18,2)"); + + b.Property("WeightUnit") + .HasColumnType("nvarchar(32)") + .HasMaxLength(32); + + b.Property("Width") + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("Code") + .IsUnique(); + + b.HasIndex("ParentId"); + + b.HasIndex("CatalogId", "ParentId") + .HasName("IX_CatalogId_ParentId"); + + b.ToTable("Item"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyAttributeEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Priority") + .HasColumnType("int"); + + b.Property("PropertyAttributeName") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("PropertyAttributeValue") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("PropertyId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("PropertyId"); + + b.ToTable("PropertyAttribute"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Alias") + .IsRequired() + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("PropertyId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("SortOrder") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PropertyId"); + + b.HasIndex("Alias", "PropertyId") + .IsUnique() + .HasName("IX_AliasAndPropertyId"); + + b.ToTable("PropertyDictionaryItem"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryValueEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("DictionaryItemId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("Locale") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("Value") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.HasKey("Id"); + + b.HasIndex("DictionaryItemId"); + + b.ToTable("PropertyDictionaryValue"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDisplayNameEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Locale") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("Name") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("PropertyId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("PropertyId"); + + b.ToTable("PropertyDisplayName"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("AllowAlias") + .HasColumnType("bit"); + + b.Property("CatalogId") + .HasColumnType("nvarchar(128)"); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("IsEnum") + .HasColumnType("bit"); + + b.Property("IsHidden") + .HasColumnType("bit"); + + b.Property("IsInput") + .HasColumnType("bit"); + + b.Property("IsKey") + .HasColumnType("bit"); + + b.Property("IsLocaleDependant") + .HasColumnType("bit"); + + b.Property("IsMultiValue") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("IsSale") + .HasColumnType("bit"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("PropertyValueType") + .HasColumnType("int"); + + b.Property("TargetType") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.HasKey("Id"); + + b.HasIndex("CatalogId"); + + b.HasIndex("CategoryId"); + + b.ToTable("Property"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyValidationRuleEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CharCountMax") + .HasColumnType("int"); + + b.Property("CharCountMin") + .HasColumnType("int"); + + b.Property("IsUnique") + .HasColumnType("bit"); + + b.Property("PropertyId") + .IsRequired() + .HasColumnType("nvarchar(128)"); + + b.Property("RegExp") + .HasColumnType("nvarchar(2048)") + .HasMaxLength(2048); + + b.HasKey("Id"); + + b.HasIndex("PropertyId"); + + b.ToTable("PropertyValidationRule"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyValueEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("BooleanValue") + .HasColumnType("bit"); + + b.Property("CatalogId") + .HasColumnType("nvarchar(128)"); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DateTimeValue") + .HasColumnType("datetime2"); + + b.Property("DecimalValue") + .HasColumnType("decimal(18,2)"); + + b.Property("DictionaryItemId") + .HasColumnType("nvarchar(128)"); + + b.Property("IntegerValue") + .HasColumnType("int"); + + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); + + b.Property("Locale") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("LongTextValue") + .HasColumnType("nvarchar(max)"); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("Name") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("OuterId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("ShortTextValue") + .HasColumnType("nvarchar(512)") + .HasMaxLength(512); + + b.Property("ValueType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CatalogId"); + + b.HasIndex("CategoryId"); + + b.HasIndex("DictionaryItemId"); + + b.HasIndex("ItemId"); + + b.ToTable("PropertyValue"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.SeoInfoEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); + + b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("ImageAltDescription") + .HasColumnType("nvarchar(255)") + .HasMaxLength(255); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); + + b.Property("Keyword") + .IsRequired() + .HasColumnType("nvarchar(255)") + .HasMaxLength(255); + + b.Property("Language") + .HasColumnType("nvarchar(5)") + .HasMaxLength(5); + + b.Property("MetaDescription") + .HasColumnType("nvarchar(1024)") + .HasMaxLength(1024); + + b.Property("MetaKeywords") + .HasColumnType("nvarchar(255)") + .HasMaxLength(255); + + b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") + .HasMaxLength(64); + + b.Property("ModifiedDate") + .HasColumnType("datetime2"); + + b.Property("StoreId") + .HasColumnType("nvarchar(128)") + .HasMaxLength(128); + + b.Property("Title") + .HasColumnType("nvarchar(255)") + .HasMaxLength(255); + + b.HasKey("Id"); + + b.HasIndex("CategoryId"); + + b.HasIndex("ItemId"); + + b.ToTable("CatalogSeoInfo"); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.AssetEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") + .WithMany("Assets") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.AssociationEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "AssociatedCategory") + .WithMany() + .HasForeignKey("AssociatedCategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "AssociatedItem") + .WithMany("ReferencedAssociations") + .HasForeignKey("AssociatedItemId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "Item") + .WithMany("Associations") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CatalogLanguageEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany("CatalogLanguages") + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany() + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "ParentCategory") + .WithMany() + .HasForeignKey("ParentCategoryId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryItemRelationEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany() + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany() + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") + .WithMany("CategoryLinks") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryRelationEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "SourceCategory") + .WithMany("OutgoingLinks") + .HasForeignKey("SourceCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "TargetCatalog") + .WithMany("IncomingLinks") + .HasForeignKey("TargetCatalogId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "TargetCategory") + .WithMany("IncomingLinks") + .HasForeignKey("TargetCategoryId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.EditorialReviewEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") + .WithMany("EditorialReviews") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.ImageEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany("Images") + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") + .WithMany("Images") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany() + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany() + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "Parent") + .WithMany("Childrens") + .HasForeignKey("ParentId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyAttributeEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") + .WithMany("PropertyAttributes") + .HasForeignKey("PropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") + .WithMany("DictionaryItems") + .HasForeignKey("PropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryValueEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", "DictionaryItem") + .WithMany("DictionaryItemValues") + .HasForeignKey("DictionaryItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDisplayNameEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") + .WithMany("DisplayNames") + .HasForeignKey("PropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany("Properties") + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany("Properties") + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyValidationRuleEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") + .WithMany("ValidationRules") + .HasForeignKey("PropertyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyValueEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") + .WithMany("CatalogPropertyValues") + .HasForeignKey("CatalogId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany("CategoryPropertyValues") + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", "DictionaryItem") + .WithMany() + .HasForeignKey("DictionaryItemId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") + .WithMany("ItemPropertyValues") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.SeoInfoEntity", b => + { + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") + .WithMany("SeoInfos") + .HasForeignKey("CategoryId") + .OnDelete(DeleteBehavior.Restrict); + + b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "Item") + .WithMany("SeoInfos") + .HasForeignKey("ItemId") + .OnDelete(DeleteBehavior.Restrict); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.cs b/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.cs new file mode 100644 index 000000000..3f6195830 --- /dev/null +++ b/src/VirtoCommerce.CatalogModule.Data/Migrations/20200528061450_ChangeAssociationDeleteBehavior.cs @@ -0,0 +1,37 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace VirtoCommerce.CatalogModule.Data.Migrations +{ + public partial class ChangeAssociationDeleteBehavior : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Association_Item_ItemId", + table: "Association"); + + migrationBuilder.AddForeignKey( + name: "FK_Association_Item_ItemId", + table: "Association", + column: "ItemId", + principalTable: "Item", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Association_Item_ItemId", + table: "Association"); + + migrationBuilder.AddForeignKey( + name: "FK_Association_Item_ItemId", + table: "Association", + column: "ItemId", + principalTable: "Item", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/src/VirtoCommerce.CatalogModule.Data/Migrations/CatalogDbContextModelSnapshot.cs b/src/VirtoCommerce.CatalogModule.Data/Migrations/CatalogDbContextModelSnapshot.cs index f8c6a6a2e..0ff4a0ce0 100644 --- a/src/VirtoCommerce.CatalogModule.Data/Migrations/CatalogDbContextModelSnapshot.cs +++ b/src/VirtoCommerce.CatalogModule.Data/Migrations/CatalogDbContextModelSnapshot.cs @@ -1,8 +1,9 @@ -// +// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using VirtoCommerce.CatalogModule.Data.Repositories; namespace VirtoCommerce.CatalogModule.Data.Migrations @@ -14,7 +15,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.2.3-servicing-35854") + .HasAnnotation("ProductVersion", "3.1.2") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); @@ -22,37 +23,49 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("ItemId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("LanguageCode") + .HasColumnType("nvarchar(5)") .HasMaxLength(5); b.Property("MimeType") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") + .HasColumnType("nvarchar(1024)") .HasMaxLength(1024); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Size"); + b.Property("Size") + .HasColumnType("bigint"); b.Property("Url") .IsRequired() + .HasColumnType("nvarchar(2083)") .HasMaxLength(2083); b.HasKey("Id"); @@ -66,37 +79,50 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("AssociatedCategoryId"); + b.Property("AssociatedCategoryId") + .HasColumnType("nvarchar(128)"); - b.Property("AssociatedItemId"); + b.Property("AssociatedItemId") + .HasColumnType("nvarchar(128)"); b.Property("AssociationType") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("ItemId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); - b.Property("Quantity"); + b.Property("Quantity") + .HasColumnType("int"); b.Property("Tags") + .HasColumnType("nvarchar(1024)") .HasMaxLength(1024); b.HasKey("Id"); @@ -114,33 +140,43 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("DefaultLanguage") .IsRequired() + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("OwnerId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Virtual"); + b.Property("Virtual") + .HasColumnType("bit"); b.HasKey("Id"); @@ -151,12 +187,15 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CatalogId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("Language") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.HasKey("Id"); @@ -170,45 +209,60 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CatalogId") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("Code") .IsRequired() + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); - b.Property("EndDate"); + b.Property("EndDate") + .HasColumnType("datetime2"); - b.Property("IsActive"); + b.Property("IsActive") + .HasColumnType("bit"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("ParentCategoryId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); - b.Property("StartDate"); + b.Property("StartDate") + .HasColumnType("datetime2"); b.Property("TaxType") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.HasKey("Id"); @@ -224,17 +278,22 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CatalogId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("ItemId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); b.HasKey("Id"); @@ -251,14 +310,18 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("SourceCategoryId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); - b.Property("TargetCatalogId"); + b.Property("TargetCatalogId") + .HasColumnType("nvarchar(128)"); - b.Property("TargetCategoryId"); + b.Property("TargetCategoryId") + .HasColumnType("nvarchar(128)"); b.HasKey("Id"); @@ -275,33 +338,45 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Comments"); + b.Property("Comments") + .HasColumnType("nvarchar(max)"); - b.Property("Content"); + b.Property("Content") + .HasColumnType("nvarchar(max)"); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("ItemId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("Locale") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); - b.Property("ReviewState"); + b.Property("ReviewState") + .HasColumnType("int"); b.Property("Source") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.HasKey("Id"); @@ -315,38 +390,51 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("Group") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ItemId"); + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); b.Property("LanguageCode") + .HasColumnType("nvarchar(5)") .HasMaxLength(5); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") + .HasColumnType("nvarchar(1024)") .HasMaxLength(1024); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("SortOrder"); + b.Property("SortOrder") + .HasColumnType("int"); b.Property("Url") .IsRequired() + .HasColumnType("nvarchar(2083)") .HasMaxLength(2083); b.HasKey("Id"); @@ -362,99 +450,137 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("AvailabilityRule"); + b.Property("AvailabilityRule") + .HasColumnType("int"); b.Property("CatalogId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("Code") .IsRequired() + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); - b.Property("DownloadExpiration"); + b.Property("DownloadExpiration") + .HasColumnType("datetime2"); b.Property("DownloadType") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("EnableReview"); + b.Property("EnableReview") + .HasColumnType("bit"); - b.Property("EndDate"); + b.Property("EndDate") + .HasColumnType("datetime2"); b.Property("Gtin") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("HasUserAgreement"); + b.Property("HasUserAgreement") + .HasColumnType("bit"); - b.Property("Height"); + b.Property("Height") + .HasColumnType("decimal(18,2)"); - b.Property("IsActive"); + b.Property("IsActive") + .HasColumnType("bit"); - b.Property("IsBuyable"); + b.Property("IsBuyable") + .HasColumnType("bit"); - b.Property("Length"); + b.Property("Length") + .HasColumnType("decimal(18,2)"); b.Property("ManufacturerPartNumber") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("MaxNumberOfDownload"); + b.Property("MaxNumberOfDownload") + .HasColumnType("int"); - b.Property("MaxQuantity"); + b.Property("MaxQuantity") + .HasColumnType("decimal(18,2)"); b.Property("MeasureUnit") + .HasColumnType("nvarchar(32)") .HasMaxLength(32); - b.Property("MinQuantity"); + b.Property("MinQuantity") + .HasColumnType("decimal(18,2)"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") .IsRequired() + .HasColumnType("nvarchar(1024)") .HasMaxLength(1024); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("PackageType") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("ParentId"); + b.Property("ParentId") + .HasColumnType("nvarchar(128)"); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); b.Property("ProductType") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("ShippingType") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("StartDate"); + b.Property("StartDate") + .HasColumnType("datetime2"); b.Property("TaxType") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("TrackInventory"); + b.Property("TrackInventory") + .HasColumnType("bit"); b.Property("Vendor") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("Weight"); + b.Property("Weight") + .HasColumnType("decimal(18,2)"); b.Property("WeightUnit") + .HasColumnType("nvarchar(32)") .HasMaxLength(32); - b.Property("Width"); + b.Property("Width") + .HasColumnType("decimal(18,2)"); b.HasKey("Id"); @@ -475,30 +601,39 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); - b.Property("Priority"); + b.Property("Priority") + .HasColumnType("int"); b.Property("PropertyAttributeName") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("PropertyAttributeValue") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("PropertyId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.HasKey("Id"); @@ -511,16 +646,20 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("Alias") .IsRequired() + .HasColumnType("nvarchar(512)") .HasMaxLength(512); b.Property("PropertyId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); - b.Property("SortOrder"); + b.Property("SortOrder") + .HasColumnType("int"); b.HasKey("Id"); @@ -537,15 +676,19 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("DictionaryItemId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("Locale") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("Value") + .HasColumnType("nvarchar(512)") .HasMaxLength(512); b.HasKey("Id"); @@ -559,16 +702,20 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("Locale") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("Name") + .HasColumnType("nvarchar(512)") .HasMaxLength(512); b.Property("PropertyId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.HasKey("Id"); @@ -581,50 +728,70 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("AllowAlias"); + b.Property("AllowAlias") + .HasColumnType("bit"); - b.Property("CatalogId"); + b.Property("CatalogId") + .HasColumnType("nvarchar(128)"); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); - b.Property("IsEnum"); + b.Property("IsEnum") + .HasColumnType("bit"); - b.Property("IsHidden"); + b.Property("IsHidden") + .HasColumnType("bit"); - b.Property("IsInput"); + b.Property("IsInput") + .HasColumnType("bit"); - b.Property("IsKey"); + b.Property("IsKey") + .HasColumnType("bit"); - b.Property("IsLocaleDependant"); + b.Property("IsLocaleDependant") + .HasColumnType("bit"); - b.Property("IsMultiValue"); + b.Property("IsMultiValue") + .HasColumnType("bit"); - b.Property("IsRequired"); + b.Property("IsRequired") + .HasColumnType("bit"); - b.Property("IsSale"); + b.Property("IsSale") + .HasColumnType("bit"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") .IsRequired() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("PropertyValueType"); + b.Property("PropertyValueType") + .HasColumnType("int"); b.Property("TargetType") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.HasKey("Id"); @@ -640,18 +807,24 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("CharCountMax"); + b.Property("CharCountMax") + .HasColumnType("int"); - b.Property("CharCountMin"); + b.Property("CharCountMin") + .HasColumnType("int"); - b.Property("IsUnique"); + b.Property("IsUnique") + .HasColumnType("bit"); b.Property("PropertyId") - .IsRequired(); + .IsRequired() + .HasColumnType("nvarchar(128)"); b.Property("RegExp") + .HasColumnType("nvarchar(2048)") .HasMaxLength(2048); b.HasKey("Id"); @@ -665,49 +838,68 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("BooleanValue"); + b.Property("BooleanValue") + .HasColumnType("bit"); - b.Property("CatalogId"); + b.Property("CatalogId") + .HasColumnType("nvarchar(128)"); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); - b.Property("DateTimeValue"); + b.Property("DateTimeValue") + .HasColumnType("datetime2"); - b.Property("DecimalValue"); + b.Property("DecimalValue") + .HasColumnType("decimal(18,2)"); - b.Property("DictionaryItemId"); + b.Property("DictionaryItemId") + .HasColumnType("nvarchar(128)"); - b.Property("IntegerValue"); + b.Property("IntegerValue") + .HasColumnType("int"); - b.Property("ItemId"); + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); b.Property("Locale") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("LongTextValue"); + b.Property("LongTextValue") + .HasColumnType("nvarchar(max)"); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("Name") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); b.Property("OuterId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("ShortTextValue") + .HasColumnType("nvarchar(512)") .HasMaxLength(512); - b.Property("ValueType"); + b.Property("ValueType") + .HasColumnType("int"); b.HasKey("Id"); @@ -726,44 +918,59 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() + .HasColumnType("nvarchar(128)") .HasMaxLength(128); - b.Property("CategoryId"); + b.Property("CategoryId") + .HasColumnType("nvarchar(128)"); b.Property("CreatedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("CreatedDate"); + b.Property("CreatedDate") + .HasColumnType("datetime2"); b.Property("ImageAltDescription") + .HasColumnType("nvarchar(255)") .HasMaxLength(255); - b.Property("IsActive"); + b.Property("IsActive") + .HasColumnType("bit"); - b.Property("ItemId"); + b.Property("ItemId") + .HasColumnType("nvarchar(128)"); b.Property("Keyword") .IsRequired() + .HasColumnType("nvarchar(255)") .HasMaxLength(255); b.Property("Language") + .HasColumnType("nvarchar(5)") .HasMaxLength(5); b.Property("MetaDescription") + .HasColumnType("nvarchar(1024)") .HasMaxLength(1024); b.Property("MetaKeywords") + .HasColumnType("nvarchar(255)") .HasMaxLength(255); b.Property("ModifiedBy") + .HasColumnType("nvarchar(64)") .HasMaxLength(64); - b.Property("ModifiedDate"); + b.Property("ModifiedDate") + .HasColumnType("datetime2"); b.Property("StoreId") + .HasColumnType("nvarchar(128)") .HasMaxLength(128); b.Property("Title") + .HasColumnType("nvarchar(255)") .HasMaxLength(255); b.HasKey("Id"); @@ -780,7 +987,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") .WithMany("Assets") .HasForeignKey("ItemId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.AssociationEntity", b => @@ -798,7 +1006,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "Item") .WithMany("Associations") .HasForeignKey("ItemId") - .OnDelete(DeleteBehavior.Restrict); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CatalogLanguageEntity", b => @@ -806,7 +1015,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") .WithMany("CatalogLanguages") .HasForeignKey("CatalogId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", b => @@ -814,7 +1024,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") .WithMany() .HasForeignKey("CatalogId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "ParentCategory") .WithMany() @@ -827,7 +1038,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") .WithMany() .HasForeignKey("CatalogId") - .OnDelete(DeleteBehavior.Restrict); + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") .WithMany() @@ -837,7 +1049,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") .WithMany("CategoryLinks") .HasForeignKey("ItemId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.CategoryRelationEntity", b => @@ -845,15 +1058,16 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "SourceCategory") .WithMany("OutgoingLinks") .HasForeignKey("SourceCategoryId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "TargetCatalog") - .WithMany("IncommingLinks") + .WithMany("IncomingLinks") .HasForeignKey("TargetCatalogId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "TargetCategory") - .WithMany("IncommingLinks") + .WithMany("IncomingLinks") .HasForeignKey("TargetCategoryId") .OnDelete(DeleteBehavior.Restrict); }); @@ -863,7 +1077,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.ItemEntity", "CatalogItem") .WithMany("EditorialReviews") .HasForeignKey("ItemId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.ImageEntity", b => @@ -884,7 +1099,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CatalogEntity", "Catalog") .WithMany() .HasForeignKey("CatalogId") - .OnDelete(DeleteBehavior.Restrict); + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); b.HasOne("VirtoCommerce.CatalogModule.Data.Model.CategoryEntity", "Category") .WithMany() @@ -902,7 +1118,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") .WithMany("PropertyAttributes") .HasForeignKey("PropertyId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", b => @@ -910,7 +1127,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") .WithMany("DictionaryItems") .HasForeignKey("PropertyId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryValueEntity", b => @@ -918,7 +1136,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyDictionaryItemEntity", "DictionaryItem") .WithMany("DictionaryItemValues") .HasForeignKey("DictionaryItemId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyDisplayNameEntity", b => @@ -926,7 +1145,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") .WithMany("DisplayNames") .HasForeignKey("PropertyId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", b => @@ -947,7 +1167,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasOne("VirtoCommerce.CatalogModule.Data.Model.PropertyEntity", "Property") .WithMany("ValidationRules") .HasForeignKey("PropertyId") - .OnDelete(DeleteBehavior.Cascade); + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("VirtoCommerce.CatalogModule.Data.Model.PropertyValueEntity", b => diff --git a/src/VirtoCommerce.CatalogModule.Data/Repositories/CatalogDbContext.cs b/src/VirtoCommerce.CatalogModule.Data/Repositories/CatalogDbContext.cs index 2bfd16d79..9dcca9f3b 100644 --- a/src/VirtoCommerce.CatalogModule.Data/Repositories/CatalogDbContext.cs +++ b/src/VirtoCommerce.CatalogModule.Data/Repositories/CatalogDbContext.cs @@ -127,13 +127,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().ToTable("Association").HasKey(x => x.Id); modelBuilder.Entity().Property(x => x.Id).HasMaxLength(128).ValueGeneratedOnAdd(); modelBuilder.Entity().HasOne(m => m.Item).WithMany(x => x.Associations) - .HasForeignKey(x => x.ItemId).IsRequired().OnDelete(DeleteBehavior.Restrict); + .HasForeignKey(x => x.ItemId).IsRequired().OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity().HasOne(a => a.AssociatedItem).WithMany(i => i.ReferencedAssociations) .HasForeignKey(a => a.AssociatedItemId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(a => a.AssociatedCategory).WithMany() .HasForeignKey(a => a.AssociatedCategoryId).OnDelete(DeleteBehavior.Restrict); #endregion - + #region Asset modelBuilder.Entity().ToTable("CatalogAsset").HasKey(x => x.Id); modelBuilder.Entity().Property(x => x.Id).HasMaxLength(128).ValueGeneratedOnAdd();