// using System; using System.Collections.Generic; using System.Reflection; using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal; using Microsoft.EntityFrameworkCore.Storage; #pragma warning disable 219, 612, 618 #nullable disable namespace DuSoft.PcmDb.CompiledEntities { internal partial class NrRejKartaEntityType { public static RuntimeEntityType Create(RuntimeModel model, RuntimeEntityType baseEntityType = null) { var runtimeEntityType = model.AddEntityType( "NrRejKarta", typeof(Dictionary), baseEntityType, sharedClrType: true, indexerPropertyInfo: RuntimeEntityType.FindIndexerProperty(typeof(Dictionary)), propertyBag: true); var kontrId = runtimeEntityType.AddProperty( "KontrId", typeof(decimal), propertyInfo: runtimeEntityType.FindIndexerPropertyInfo(), afterSaveBehavior: PropertySaveBehavior.Throw); kontrId.TypeMapping = SqlServerDecimalTypeMapping.Default.Clone( comparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), keyComparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), providerValueComparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), mappingInfo: new RelationalTypeMappingInfo( storeTypeName: "numeric(9,0)", precision: 9, scale: 0)); kontrId.AddAnnotation("Relational:ColumnType", "numeric(9, 0)"); kontrId.AddAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.None); var nrFormat = runtimeEntityType.AddProperty( "NrFormat", typeof(string), propertyInfo: runtimeEntityType.FindIndexerPropertyInfo(), afterSaveBehavior: PropertySaveBehavior.Throw, maxLength: 60, unicode: false); nrFormat.TypeMapping = SqlServerStringTypeMapping.Default.Clone( comparer: new ValueComparer( (string l, string r) => string.Equals(l, r, StringComparison.OrdinalIgnoreCase), (string v) => v == null ? 0 : StringComparer.OrdinalIgnoreCase.GetHashCode(v), (string v) => v), keyComparer: new ValueComparer( (string l, string r) => string.Equals(l, r, StringComparison.OrdinalIgnoreCase), (string v) => v == null ? 0 : StringComparer.OrdinalIgnoreCase.GetHashCode(v), (string v) => v), providerValueComparer: new ValueComparer( (string l, string r) => string.Equals(l, r, StringComparison.OrdinalIgnoreCase), (string v) => v == null ? 0 : StringComparer.OrdinalIgnoreCase.GetHashCode(v), (string v) => v), mappingInfo: new RelationalTypeMappingInfo( storeTypeName: "varchar(60)", size: 60)); nrFormat.AddAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.None); var kartaId = runtimeEntityType.AddProperty( "KartaId", typeof(decimal), propertyInfo: runtimeEntityType.FindIndexerPropertyInfo(), afterSaveBehavior: PropertySaveBehavior.Throw); kartaId.TypeMapping = SqlServerDecimalTypeMapping.Default.Clone( comparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), keyComparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), providerValueComparer: new ValueComparer( (decimal v1, decimal v2) => v1 == v2, (decimal v) => v.GetHashCode(), (decimal v) => v), mappingInfo: new RelationalTypeMappingInfo( storeTypeName: "numeric(9,0)", precision: 9, scale: 0)); kartaId.AddAnnotation("Relational:ColumnType", "numeric(9, 0)"); kartaId.AddAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.None); var key = runtimeEntityType.AddKey( new[] { kontrId, nrFormat, kartaId }); runtimeEntityType.SetPrimaryKey(key); key.AddAnnotation("Relational:Name", "PK_NRREJKARTA"); var idx_NrRejKartaId = runtimeEntityType.AddIndex( new[] { kartaId, kontrId, nrFormat }, name: "idx_NrRejKartaId"); return runtimeEntityType; } public static RuntimeForeignKey CreateForeignKey1(RuntimeEntityType declaringEntityType, RuntimeEntityType principalEntityType) { var runtimeForeignKey = declaringEntityType.AddForeignKey(new[] { declaringEntityType.FindProperty("KartaId") }, principalEntityType.FindKey(new[] { principalEntityType.FindProperty("KartaId") }), principalEntityType, required: true); runtimeForeignKey.AddAnnotation("Relational:Name", "Ref_KartaNrRej"); return runtimeForeignKey; } public static RuntimeForeignKey CreateForeignKey2(RuntimeEntityType declaringEntityType, RuntimeEntityType principalEntityType) { var runtimeForeignKey = declaringEntityType.AddForeignKey(new[] { declaringEntityType.FindProperty("KontrId"), declaringEntityType.FindProperty("NrFormat") }, principalEntityType.FindKey(new[] { principalEntityType.FindProperty("KontrId"), principalEntityType.FindProperty("NrFormat") }), principalEntityType, required: true); runtimeForeignKey.AddAnnotation("Relational:Name", "Ref_NrRejKarta"); return runtimeForeignKey; } public static void CreateAnnotations(RuntimeEntityType runtimeEntityType) { runtimeEntityType.AddAnnotation("Relational:FunctionName", null); runtimeEntityType.AddAnnotation("Relational:Schema", null); runtimeEntityType.AddAnnotation("Relational:SqlQuery", null); runtimeEntityType.AddAnnotation("Relational:TableName", "NrRejKarta"); runtimeEntityType.AddAnnotation("Relational:ViewName", null); runtimeEntityType.AddAnnotation("Relational:ViewSchema", null); Customize(runtimeEntityType); } static partial void Customize(RuntimeEntityType runtimeEntityType); } }