/// <inheritdoc /> public virtual void Generate(IServiceProperty property, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(CoreAnnotationNames.PropertyAccessMode); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public override void Generate(IKey key, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(SqlServerAnnotationNames.Clustered); } base.Generate(key, parameters); }
/// <inheritdoc /> public virtual void Generate(ISkipNavigation navigation, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(CoreAnnotationNames.PropertyAccessMode); annotations.Remove(CoreAnnotationNames.EagerLoaded); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public override void Generate(IModel model, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { annotations.Remove(CosmosAnnotationNames.Throughput); } base.Generate(model, parameters); }
/// <inheritdoc /> public override void Generate(IProperty property, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { annotations.Remove(SqliteAnnotationNames.Srid); } base.Generate(property, parameters); }
/// <summary> /// Generates code to create the given annotations using literals. /// </summary> /// <param name="parameters"> Parameters used during code generation. </param> protected virtual void GenerateSimpleAnnotations(CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { foreach (var(name, value) in parameters.Annotations.OrderBy(a => a.Key)) { if (value != null) { AddNamespace(value as Type ?? value.GetType(), parameters.Namespaces); } GenerateSimpleAnnotation(name, Dependencies.CSharpHelper.UnknownLiteral(value), parameters); } }
/// <inheritdoc /> public override void Generate(IIndex index, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(SqlServerAnnotationNames.Clustered); annotations.Remove(SqlServerAnnotationNames.CreatedOnline); annotations.Remove(SqlServerAnnotationNames.Include); annotations.Remove(SqlServerAnnotationNames.FillFactor); } base.Generate(index, parameters); }
/// <inheritdoc /> public virtual void Generate(IEntityType entityType, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { annotations.Remove(CoreAnnotationNames.PropertyAccessMode); annotations.Remove(CoreAnnotationNames.NavigationAccessMode); annotations.Remove(CoreAnnotationNames.DiscriminatorProperty); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public override void Generate(IEntityType entityType, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { annotations.Remove(CosmosAnnotationNames.AnalyticalStoreTimeToLive); annotations.Remove(CosmosAnnotationNames.DefaultTimeToLive); annotations.Remove(CosmosAnnotationNames.Throughput); } base.Generate(entityType, parameters); }
/// <inheritdoc /> public override void Generate(IModel model, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (parameters.IsRuntime) { annotations.Remove(RelationalAnnotationNames.ModelDependencies); annotations.Remove(RelationalAnnotationNames.RelationalModel); } else { annotations.Remove(RelationalAnnotationNames.Collation); if (annotations.TryGetAndRemove( RelationalAnnotationNames.DbFunctions, out SortedDictionary <string, IDbFunction> functions)) { parameters.Namespaces.Add(typeof(SortedDictionary <,>).Namespace !); parameters.Namespaces.Add(typeof(BindingFlags).Namespace !); var functionsVariable = Dependencies.CSharpHelper.Identifier("functions", parameters.ScopeVariables, capitalize: false); parameters.MainBuilder .Append("var ").Append(functionsVariable).AppendLine(" = new SortedDictionary<string, IDbFunction>();"); foreach (var function in functions.Values) { Create(function, functionsVariable, parameters); } GenerateSimpleAnnotation(RelationalAnnotationNames.DbFunctions, functionsVariable, parameters); } if (annotations.TryGetAndRemove( RelationalAnnotationNames.Sequences, out SortedDictionary <(string, string?), ISequence> sequences)) { parameters.Namespaces.Add(typeof(SortedDictionary <,>).Namespace !); var sequencesVariable = Dependencies.CSharpHelper.Identifier("sequences", parameters.ScopeVariables, capitalize: false); parameters.MainBuilder .Append("var ").Append(sequencesVariable).AppendLine(" = new SortedDictionary<(string, string), ISequence>();"); foreach (var sequencePair in sequences) { Create(sequencePair.Value, sequencesVariable, parameters); } GenerateSimpleAnnotation(RelationalAnnotationNames.Sequences, sequencesVariable, parameters); } } base.Generate(model, parameters); }
/// <inheritdoc /> public virtual void Generate(IModel model, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { parameters.Annotations.Remove(CoreAnnotationNames.PropertyAccessMode); } else { parameters.Annotations.Remove(CoreAnnotationNames.ModelDependencies); parameters.Annotations.Remove(CoreAnnotationNames.ReadOnlyModel); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public override void Generate(IModel model, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(SqlServerAnnotationNames.IdentityIncrement); annotations.Remove(SqlServerAnnotationNames.IdentitySeed); annotations.Remove(SqlServerAnnotationNames.MaxDatabaseSize); annotations.Remove(SqlServerAnnotationNames.PerformanceLevelSql); annotations.Remove(SqlServerAnnotationNames.ServiceTierSql); } base.Generate(model, parameters); }
/// <inheritdoc /> public override void Generate(IEntityType entityType, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(SqlServerAnnotationNames.TemporalHistoryTableName); annotations.Remove(SqlServerAnnotationNames.TemporalHistoryTableSchema); annotations.Remove(SqlServerAnnotationNames.TemporalPeriodEndColumnName); annotations.Remove(SqlServerAnnotationNames.TemporalPeriodEndPropertyName); annotations.Remove(SqlServerAnnotationNames.TemporalPeriodStartColumnName); annotations.Remove(SqlServerAnnotationNames.TemporalPeriodStartPropertyName); } base.Generate(entityType, parameters); }
/// <inheritdoc /> public virtual void Generate(ITypeMappingConfiguration typeConfiguration, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; foreach (var(key, _) in annotations) { if (CoreAnnotationNames.AllNames.Contains(key)) { annotations.Remove(key); } } } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public virtual void Generate(IServiceProperty property, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; foreach (var(key, _) in annotations) { if (CoreAnnotationNames.AllNames.Contains(key)) { annotations.Remove(key); } } } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public virtual void Generate(IIndex index, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; foreach (var annotation in annotations) { if (CoreAnnotationNames.AllNames.Contains(annotation.Key)) { annotations.Remove(annotation.Key); } } } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public override void Generate(IProperty property, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(SqlServerAnnotationNames.IdentityIncrement); annotations.Remove(SqlServerAnnotationNames.IdentitySeed); annotations.Remove(SqlServerAnnotationNames.Sparse); if (!annotations.ContainsKey(SqlServerAnnotationNames.ValueGenerationStrategy)) { annotations[SqlServerAnnotationNames.ValueGenerationStrategy] = property.GetValueGenerationStrategy(); } } base.Generate(property, parameters); }
/// <inheritdoc /> public virtual void Generate(IEntityType entityType, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { foreach (var(key, _) in annotations) { if (CoreAnnotationNames.AllNames.Contains(key) && key != CoreAnnotationNames.DiscriminatorMappingComplete) { annotations.Remove(key); } } } GenerateSimpleAnnotations(parameters); }
/// <summary> /// Generates code to create the given annotation. /// </summary> /// <param name="annotationName"> The annotation name. </param> /// <param name="valueString"> The annotation value as a literal. </param> /// <param name="parameters"> Additional parameters used during code generation. </param> protected virtual void GenerateSimpleAnnotation( string annotationName, string valueString, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (parameters.TargetName != "this") { parameters.MainBuilder .Append(parameters.TargetName) .Append('.'); } parameters.MainBuilder .Append(parameters.IsRuntime ? "AddRuntimeAnnotation(" : "AddAnnotation(") .Append(Dependencies.CSharpHelper.Literal(annotationName)) .Append(", ") .Append(valueString) .AppendLine(");"); }
/// <inheritdoc /> public virtual void Generate(IProperty property, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (!parameters.IsRuntime) { var annotations = parameters.Annotations; annotations.Remove(CoreAnnotationNames.PropertyAccessMode); annotations.Remove(CoreAnnotationNames.BeforeSaveBehavior); annotations.Remove(CoreAnnotationNames.AfterSaveBehavior); annotations.Remove(CoreAnnotationNames.MaxLength); annotations.Remove(CoreAnnotationNames.Unicode); annotations.Remove(CoreAnnotationNames.Precision); annotations.Remove(CoreAnnotationNames.Scale); annotations.Remove(CoreAnnotationNames.ProviderClrType); annotations.Remove(CoreAnnotationNames.ValueGeneratorFactory); annotations.Remove(CoreAnnotationNames.ValueGeneratorFactoryType); annotations.Remove(CoreAnnotationNames.ValueConverter); annotations.Remove(CoreAnnotationNames.ValueConverterType); annotations.Remove(CoreAnnotationNames.ValueComparer); annotations.Remove(CoreAnnotationNames.ValueComparerType); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public virtual void Generate(IModel model, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { var annotations = parameters.Annotations; if (!parameters.IsRuntime) { foreach (var(key, _) in annotations) { if (CoreAnnotationNames.AllNames.Contains(key) && key != CoreAnnotationNames.ProductVersion && key != CoreAnnotationNames.FullChangeTrackingNotificationsRequired) { annotations.Remove(key); } } } else { annotations.Remove(CoreAnnotationNames.ModelDependencies); annotations.Remove(CoreAnnotationNames.ReadOnlyModel); } GenerateSimpleAnnotations(parameters); }
/// <inheritdoc /> public virtual void Generate(IForeignKey foreignKey, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { GenerateSimpleAnnotations(parameters); }
private void Create( IDbFunction function, string functionsVariable, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { if (function.Translation != null) { throw new InvalidOperationException(RelationalStrings.CompiledModelFunctionTranslation(function.Name)); } if (function is IConventionDbFunction conventionFunction && conventionFunction.GetTypeMappingConfigurationSource() != null) { throw new InvalidOperationException(RelationalStrings.CompiledModelFunctionTypeMapping( function.Name, "Customize()", parameters.ClassName)); } AddNamespace(function.ReturnType, parameters.Namespaces); var code = Dependencies.CSharpHelper; var functionVariable = code.Identifier( function.MethodInfo?.Name ?? function.Name, parameters.ScopeVariables, capitalize: false); var mainBuilder = parameters.MainBuilder; mainBuilder .Append("var ").Append(functionVariable).AppendLine(" = new RuntimeDbFunction(").IncrementIndent() .Append(code.Literal(function.ModelName)).AppendLine(",") .Append(parameters.TargetName).AppendLine(",") .Append(code.Literal(function.ReturnType)).AppendLine(",") .Append(code.Literal(function.Name)); if (function.Schema != null) { mainBuilder.AppendLine(",") .Append("schema: ").Append(code.Literal(function.Schema)); } if (function.StoreType != null) { mainBuilder.AppendLine(",") .Append("storeType: ").Append(code.Literal(function.StoreType)); } if (function.MethodInfo != null) { var method = function.MethodInfo; mainBuilder.AppendLine(",") .Append("methodInfo: ").Append(code.Literal(method.DeclaringType !)).AppendLine(".GetMethod(").IncrementIndent() .Append(code.Literal(method.Name !)).AppendLine(",") .Append(method.IsPublic ? "BindingFlags.Public" : "BindingFlags.NonPublic") .Append(method.IsStatic ? " | BindingFlags.Static" : " | BindingFlags.Instance") .AppendLine(" | BindingFlags.DeclaredOnly,") .AppendLine("null,") .Append("new Type[] { ").Append(string.Join(", ", method.GetParameters().Select(p => code.Literal((Type)p.ParameterType)))).AppendLine(" },") .Append("null)").DecrementIndent(); } if (function.IsScalar) { mainBuilder.AppendLine(",") .Append("scalar: ").Append(code.Literal(function.IsScalar)); } if (function.IsAggregate) { mainBuilder.AppendLine(",") .Append("aggregate: ").Append(code.Literal(function.IsAggregate)); } if (function.IsNullable) { mainBuilder.AppendLine(",") .Append("nullable: ").Append(code.Literal(function.IsNullable)); } if (function.IsBuiltIn) { mainBuilder.AppendLine(",") .Append("builtIn: ").Append(code.Literal(function.IsBuiltIn)); } mainBuilder.AppendLine(");").DecrementIndent() .AppendLine(); var parameterParameters = parameters with { TargetName = functionVariable }; foreach (var parameter in function.Parameters) { Create(parameter, parameterParameters); } CreateAnnotations( function, Generate, parameters with { TargetName = functionVariable });
/// <inheritdoc /> public virtual void Generate(IIndex index, CSharpRuntimeAnnotationCodeGeneratorParameters parameters) { GenerateSimpleAnnotations(parameters); }