diff --git a/src/EFCore.Cosmos/Properties/CosmosStrings.Designer.cs b/src/EFCore.Cosmos/Properties/CosmosStrings.Designer.cs index 229f836e715..ca04b618a8a 100644 --- a/src/EFCore.Cosmos/Properties/CosmosStrings.Designer.cs +++ b/src/EFCore.Cosmos/Properties/CosmosStrings.Designer.cs @@ -19,7 +19,7 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.Cosmos.Properties.CosmosStrings", typeof(CosmosStrings).Assembly); /// - /// Both the connection string and account key or account endpoint were specified. Only specify one set of connection details. + /// Both the connection string and account key or account endpoint were specified. Specify only one set of connection details. /// public static string ConnectionStringConflictingConfiguration => GetString("ConnectionStringConflictingConfiguration"); @@ -31,7 +31,7 @@ public static string CosmosNotInUse => GetString("CosmosNotInUse"); /// - /// The discriminator value for '{entityType1}' is '{discriminatorValue}' which is the same for '{entityType2}'. Every concrete entity type mapped to the container '{container}' needs to have a unique discriminator value. + /// The discriminator value for '{entityType1}' is '{discriminatorValue}' which is the same for '{entityType2}'. Every concrete entity type mapped to the container '{container}' must have a unique discriminator value. /// public static string DuplicateDiscriminatorValue([CanBeNull] object entityType1, [CanBeNull] object discriminatorValue, [CanBeNull] object entityType2, [CanBeNull] object container) => string.Format( @@ -39,7 +39,7 @@ public static string DuplicateDiscriminatorValue([CanBeNull] object entityType1, entityType1, discriminatorValue, entityType2, container); /// - /// The type of the etag property '{property}' on '{entityType}' is '{propertyType}'. All etag properties need to be strings or have a string converter. + /// The type of the etag property '{property}' on '{entityType}' is '{propertyType}'. All etag properties must be strings or have a string value converter. /// public static string ETagNonStringStoreType([CanBeNull] object property, [CanBeNull] object entityType, [CanBeNull] object propertyType) => string.Format( @@ -47,7 +47,7 @@ public static string ETagNonStringStoreType([CanBeNull] object property, [CanBeN property, entityType, propertyType); /// - /// The type of the '{idProperty}' property on '{entityType}' is '{propertyType}'. All 'id' properties need to be strings or have a string converter. + /// The type of the '{idProperty}' property on '{entityType}' is '{propertyType}'. All 'id' properties must be strings or have a string value converter. /// public static string IdNonStringStoreType([CanBeNull] object idProperty, [CanBeNull] object entityType, [CanBeNull] object propertyType) => string.Format( @@ -63,7 +63,7 @@ public static string InvalidDerivedTypeInEntityProjection([CanBeNull] object der derivedType, entityType); /// - /// Unable to generate a valid 'id' value to execute ReadItem query. This usually happens when value provided for one of the properties is null or empty string. Please supply a value that's not null or empty. + /// Unable to generate a valid 'id' value to execute a ReadItem query. This usually happens when the value provided for one of the properties is null or an empty string. Please supply a value that's not null or empty. /// public static string InvalidResourceId => GetString("InvalidResourceId"); @@ -139,7 +139,7 @@ public static string NonETagConcurrencyToken([CanBeNull] object entityType, [Can entityType, property); /// - /// The entity type '{entityType}' does not have a partition key set, but it is mapped to the container '{container}' shared by entity types with partition keys. Configure a partition key on '{entityType}'. + /// The entity type '{entityType}' does not have a partition key set, but is mapped to the container '{container}' shared by entity types with partition keys. Configure a partition key on '{entityType}'. /// public static string NoPartitionKey([CanBeNull] object entityType, [CanBeNull] object container) => string.Format( @@ -163,7 +163,7 @@ public static string NoReadItemQueryString([CanBeNull] object resourceId, [CanBe resourceId, partitionKey); /// - /// Expression '{sqlExpression}' in SQL tree does not have type mapping assigned. + /// The expression '{sqlExpression}' in the SQL tree does not have a type mapping assigned. /// public static string NullTypeMappingInSqlTree([CanBeNull] object sqlExpression) => string.Format( @@ -185,7 +185,7 @@ public static string OrphanedNestedDocument([CanBeNull] object entityType, [CanB entityType, missingEntityType); /// - /// The entity of type '{entityType}' is mapped as a part of the document mapped to '{missingEntityType}', but there is no tracked entity of this type with the key value '{keyValue}'. + /// The entity of type '{entityType}' is mapped as part of the document mapped to '{missingEntityType}', but there is no tracked entity of this type with the key value '{keyValue}'. /// public static string OrphanedNestedDocumentSensitive([CanBeNull] object entityType, [CanBeNull] object missingEntityType, [CanBeNull] object keyValue) => string.Format( @@ -193,18 +193,18 @@ public static string OrphanedNestedDocumentSensitive([CanBeNull] object entityTy entityType, missingEntityType, keyValue); /// - /// Unable to execute a ReadItem query since the partition key value is missing. Consider using 'WithPartitionKey' method on the query to specify partition key to use. + /// Unable to execute a ReadItem query since the partition key value is missing. Consider using the 'WithPartitionKey' method on the query to specify partition key to use. /// - public static string ParitionKeyMissing - => GetString("ParitionKeyMissing"); + public static string PartitionKeyMissing + => GetString("PartitionKeyMissing"); /// - /// Partition key specified in the WithPartitionKey call '{paritionKey1}' and the partition key specified in the Where predicate '{paritionKey2}' must be identical. Remove one of them . + /// The partition key specified in the 'WithPartitionKey' call '{partitionKey1}' and the partition key specified in the 'Where' predicate '{partitionKey2}' must be identical. Remove one of them. /// - public static string PartitionKeyMismatch([CanBeNull] object paritionKey1, [CanBeNull] object paritionKey2) + public static string PartitionKeyMismatch([CanBeNull] object partitionKey1, [CanBeNull] object partitionKey2) => string.Format( - GetString("PartitionKeyMismatch", nameof(paritionKey1), nameof(paritionKey2)), - paritionKey1, paritionKey2); + GetString("PartitionKeyMismatch", nameof(partitionKey1), nameof(partitionKey2)), + partitionKey1, partitionKey2); /// /// The partition key for entity type '{entityType}' is set to '{property}', but there is no property with that name. @@ -215,7 +215,7 @@ public static string PartitionKeyMissingProperty([CanBeNull] object entityType, entityType, property); /// - /// The type of the partition key property '{property}' on '{entityType}' is '{propertyType}'. All partition key properties need to be strings or have a string converter. + /// The type of the partition key property '{property}' on '{entityType}' is '{propertyType}'. All partition key properties need to be strings or have a string value converter. /// public static string PartitionKeyNonStringStoreType([CanBeNull] object property, [CanBeNull] object entityType, [CanBeNull] object propertyType) => string.Format( @@ -237,13 +237,13 @@ public static string ResourceIdMissing => GetString("ResourceIdMissing"); /// - /// Reversing the ordering in 'SelectExpression' is not supported when limit or offset are already applied. + /// Reversing the ordering is not supported when limit or offset are already applied. /// public static string ReverseAfterSkipTakeNotSupported => GetString("ReverseAfterSkipTakeNotSupported"); /// - /// Unable to bind '{memberType}' '{member}' to entity projection of '{entityType}'. + /// Unable to bind '{memberType}' '{member}' to an entity projection of '{entityType}'. /// public static string UnableToBindMemberToEntityProjection([CanBeNull] object memberType, [CanBeNull] object member, [CanBeNull] object entityType) => string.Format( diff --git a/src/EFCore.Cosmos/Properties/CosmosStrings.resx b/src/EFCore.Cosmos/Properties/CosmosStrings.resx index 83d9834923a..ab44efafd87 100644 --- a/src/EFCore.Cosmos/Properties/CosmosStrings.resx +++ b/src/EFCore.Cosmos/Properties/CosmosStrings.resx @@ -118,25 +118,25 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Both the connection string and account key or account endpoint were specified. Only specify one set of connection details. + Both the connection string and account key or account endpoint were specified. Specify only one set of connection details. Cosmos-specific methods can only be used when the context is using the Cosmos provider. - The discriminator value for '{entityType1}' is '{discriminatorValue}' which is the same for '{entityType2}'. Every concrete entity type mapped to the container '{container}' needs to have a unique discriminator value. + The discriminator value for '{entityType1}' is '{discriminatorValue}' which is the same for '{entityType2}'. Every concrete entity type mapped to the container '{container}' must have a unique discriminator value. - The type of the etag property '{property}' on '{entityType}' is '{propertyType}'. All etag properties need to be strings or have a string converter. + The type of the etag property '{property}' on '{entityType}' is '{propertyType}'. All etag properties must be strings or have a string value converter. - The type of the '{idProperty}' property on '{entityType}' is '{propertyType}'. All 'id' properties need to be strings or have a string converter. + The type of the '{idProperty}' property on '{entityType}' is '{propertyType}'. All 'id' properties must be strings or have a string value converter. The specified entity type '{derivedType}' is not derived from '{entityType}'. - Unable to generate a valid 'id' value to execute ReadItem query. This usually happens when value provided for one of the properties is null or empty string. Please supply a value that's not null or empty. + Unable to generate a valid 'id' value to execute a 'ReadItem' query. This usually happens when the value provided for one of the properties is 'null' or an empty string. Please supply a value that's not 'null' or an empty string. Both properties '{property1}' and '{property2}' on entity type '{entityType}' are mapped to '{storeName}'. Map one of the properties to a different JSON property. @@ -166,7 +166,7 @@ The entity type '{entityType}' has property '{property}' as its concurrency token, but only '_etag' is supported. Consider using 'EntityTypeBuilder.UseETagConcurrency'. - The entity type '{entityType}' does not have a partition key set, but it is mapped to the container '{container}' shared by entity types with partition keys. Configure a partition key on '{entityType}'. + The entity type '{entityType}' does not have a partition key set, but is mapped to the container '{container}' shared by entity types with partition keys. Configure a partition key on '{entityType}'. The entity type '{entityType}' does not have a key declared on '{partitionKey}' and '{idProperty}' properties. Add a key to '{entityType}' that contains '{partitionKey}' and '{idProperty}'. @@ -175,40 +175,40 @@ There is no string-based representation of this query as it's executed using 'ReadItemQueryAsync({resourceId}, {partitionKey})'. - Expression '{sqlExpression}' in SQL tree does not have type mapping assigned. + The expression '{sqlExpression}' in the SQL tree does not have a type mapping assigned. - Cosmos SQL does not allow Offset without Limit. Consider specifying 'Take' operation on the query. + Cosmos SQL does not allow Offset without Limit. Consider specifying a 'Take' operation on the query. The entity of type '{entityType}' is mapped as a part of the document mapped to '{missingEntityType}', but there is no tracked entity of this type with the corresponding key value. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the key values. - The entity of type '{entityType}' is mapped as a part of the document mapped to '{missingEntityType}', but there is no tracked entity of this type with the key value '{keyValue}'. + The entity of type '{entityType}' is mapped as part of the document mapped to '{missingEntityType}', but there is no tracked entity of this type with the key value '{keyValue}'. - - Unable to execute a ReadItem query since the partition key value is missing. Consider using 'WithPartitionKey' method on the query to specify partition key to use. + + Unable to execute a 'ReadItem' query since the partition key value is missing. Consider using the 'WithPartitionKey' method on the query to specify partition key to use. - Partition key specified in the WithPartitionKey call '{paritionKey1}' and the partition key specified in the Where predicate '{paritionKey2}' must be identical. Remove one of them . + The partition key specified in the 'WithPartitionKey' call '{partitionKey1}' and the partition key specified in the 'Where' predicate '{partitionKey2}' must be identical. Remove one of them. The partition key for entity type '{entityType}' is set to '{property}', but there is no property with that name. - The type of the partition key property '{property}' on '{entityType}' is '{propertyType}'. All partition key properties need to be strings or have a string converter. + The type of the partition key property '{property}' on '{entityType}' is '{propertyType}'. All partition key properties need to be strings or have a string value converter. The partition key property '{property1}' on '{entityType1}' is mapped as '{storeName1}', but the partition key property '{property2}' on '{entityType2}' is mapped as '{storeName2}'. All partition key properties need to be mapped to the same store property. - Unable to execute a ReadItem query since the 'id' value is missing and cannot be generated. + Unable to execute a 'ReadItem' query since the 'id' value is missing and cannot be generated. - Reversing the ordering in 'SelectExpression' is not supported when limit or offset are already applied. + Reversing the ordering is not supported when limit or offset are already applied. - Unable to bind '{memberType}' '{member}' to entity projection of '{entityType}'. + Unable to bind '{memberType}' '{member}' to an entity projection of '{entityType}'. Unsupported operator '{nodeType}' specified for expression of type '{expressionType}'. @@ -219,4 +219,4 @@ 'VisitChildren' must be overridden in the class deriving from 'SqlExpression'. - \ No newline at end of file + diff --git a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs index ad66807e9a7..61e6e975958 100644 --- a/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs +++ b/src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs @@ -211,7 +211,7 @@ public bool MoveNext() if (!_readItemEnumerable.TryGetPartitionId(out var partitionKey)) { - throw new InvalidOperationException(CosmosStrings.ParitionKeyMissing); + throw new InvalidOperationException(CosmosStrings.PartitionKeyMissing); } EntityFrameworkEventSource.Log.QueryExecuting(); @@ -250,7 +250,7 @@ public async ValueTask MoveNextAsync() if (!_readItemEnumerable.TryGetPartitionId(out var partitionKey)) { - throw new InvalidOperationException(CosmosStrings.ParitionKeyMissing); + throw new InvalidOperationException(CosmosStrings.PartitionKeyMissing); } EntityFrameworkEventSource.Log.QueryExecuting(); diff --git a/src/EFCore.Relational/Properties/RelationalStrings.Designer.cs b/src/EFCore.Relational/Properties/RelationalStrings.Designer.cs index 1baf1b0ecb9..0246c315396 100644 --- a/src/EFCore.Relational/Properties/RelationalStrings.Designer.cs +++ b/src/EFCore.Relational/Properties/RelationalStrings.Designer.cs @@ -25,19 +25,19 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.Properties.RelationalStrings", typeof(RelationalStrings).Assembly); /// - /// Unable to deserialize sequence from model metadata. See inner exception for details. + /// Unable to deserialize a sequence from model metadata. See inner exception for details. /// public static string BadSequenceString => GetString("BadSequenceString"); /// - /// Invalid type for sequence. Valid types are 'Int64' (the default), 'Int32', 'Int16', 'Byte' and 'Decimal'. + /// Invalid type for sequence. Valid types are long (the default), int, short, byte and decimal. /// public static string BadSequenceType => GetString("BadSequenceType"); /// - /// The 'DbConnection' is currently in use. The connection can only be changed when the existing connection is not being used. + /// The instance of DbConnection is currently in use. The connection can only be changed when the existing connection is not being used. /// public static string CannotChangeWhenOpen => GetString("CannotChangeWhenOpen"); @@ -49,15 +49,15 @@ public static string ClientGroupByNotSupported => GetString("ClientGroupByNotSupported"); /// - /// The column '{column}' on table '{table}' has unspecified computed column SQL. Specify the SQL before using Entity Framework to create the database schema. + /// The computed column SQL has not been specified for the column '{table}.{column}'. Specify the SQL before using Entity Framework to create the database schema. /// - public static string ComputedColumnSqlUnspecified([CanBeNull] object column, [CanBeNull] object table) + public static string ComputedColumnSqlUnspecified([CanBeNull] object table, [CanBeNull] object column) => string.Format( - GetString("ComputedColumnSqlUnspecified", nameof(column), nameof(table)), - column, table); + GetString("ComputedColumnSqlUnspecified", nameof(table), nameof(column)), + table, column); /// - /// An ambient transaction has been detected. The ambient transaction needs to be completed before beginning a transaction on this connection. + /// An ambient transaction has been detected. The ambient transaction needs to be completed before starting a new transaction on this connection. /// public static string ConflictingAmbientTransaction => GetString("ConflictingAmbientTransaction"); @@ -71,7 +71,7 @@ public static string ConflictingColumnServerGeneration([CanBeNull] object confli conflictingConfiguration, property, existingConfiguration); /// - /// The connection is currently enlisted in a transaction. The enlisted transaction needs to be completed before starting a transaction. + /// The connection is currently enlisted in a transaction. The enlisted transaction needs to be completed before starting a new transaction. /// public static string ConflictingEnlistedTransaction => GetString("ConflictingEnlistedTransaction"); @@ -85,7 +85,7 @@ public static string ConflictingOriginalRowValues([CanBeNull] object firstEntity firstEntityType, secondEntityType, firstProperty, secondProperty, column); /// - /// The instance of entity type '{firstEntityType}' and the instance of entity type '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different original property values {firstConflictingValues} and {secondConflictingValues} for the column '{column}'. + /// Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different original property values {firstConflictingValues} and {secondConflictingValues} for the column '{column}'. /// public static string ConflictingOriginalRowValuesSensitive([CanBeNull] object firstEntityType, [CanBeNull] object secondEntityType, [CanBeNull] object keyValue, [CanBeNull] object firstConflictingValues, [CanBeNull] object secondConflictingValues, [CanBeNull] object column) => string.Format( @@ -109,7 +109,7 @@ public static string ConflictingRowUpdateTypesSensitive([CanBeNull] object first firstEntityType, firstKeyValue, firstState, secondEntityType, secondKeyValue, secondState); /// - /// An instance of entity type '{firstEntityType}' and an instance of entity type '{secondEntityType}' are mapped to the same row, but have different property values for the properties {firstProperty} and {secondProperty} mapped to '{column}'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting values. + /// Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row, but have different property values for the properties {firstProperty} and {secondProperty} mapped to '{column}'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting values. /// public static string ConflictingRowValues([CanBeNull] object firstEntityType, [CanBeNull] object secondEntityType, [CanBeNull] object firstProperty, [CanBeNull] object secondProperty, [CanBeNull] object column) => string.Format( @@ -117,7 +117,7 @@ public static string ConflictingRowValues([CanBeNull] object firstEntityType, [C firstEntityType, secondEntityType, firstProperty, secondProperty, column); /// - /// The instance of entity type '{firstEntityType}' and the instance of entity type '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different property values '{firstConflictingValue}' and '{secondConflictingValue}' for the column '{column}'. + /// Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different property values '{firstConflictingValue}' and '{secondConflictingValue}' for the column '{column}'. /// public static string ConflictingRowValuesSensitive([CanBeNull] object firstEntityType, [CanBeNull] object secondEntityType, [CanBeNull] object keyValue, [CanBeNull] object firstConflictingValue, [CanBeNull] object secondConflictingValue, [CanBeNull] object column) => string.Format( @@ -131,7 +131,7 @@ public static string DatabaseModelMissing => GetString("DatabaseModelMissing"); /// - /// There is no property mapped to the column '{table}.{column}' used in a data operation. Either add a property mapped to this column or specify the column types in the data operation. + /// There is no property mapped to the column '{table}.{column}' which is used in a data operation. Either add a property mapped to this column, or specify the column types in the data operation. /// public static string DataOperationNoProperty([CanBeNull] object table, [CanBeNull] object column) => string.Format( @@ -139,7 +139,7 @@ public static string DataOperationNoProperty([CanBeNull] object table, [CanBeNul table, column); /// - /// There is no entity type mapped to the table '{table}' used in a data operation. Either add the corresponding entity type to the model or specify the column types in the data operation. + /// There is no entity type mapped to the table '{table}' which is used in a data operation. Either add the corresponding entity type to the model, or specify the column types in the data operation. /// public static string DataOperationNoTable([CanBeNull] object table) => string.Format( @@ -147,7 +147,7 @@ public static string DataOperationNoTable([CanBeNull] object table) table); /// - /// The provided DbFunction expression '{expression}' is invalid. The expression should be a lambda expression containing a single method call to the target static method. Default values can be provided as arguments if required. E.g. '() => SomeClass.SomeMethod(null, 0)'. + /// The provided DbFunction expression '{expression}' is invalid. The expression must be a lambda expression containing a single method call to the target static method. Default values can be provided as arguments if required, e.g. '() => SomeClass.SomeMethod(null, 0)' /// public static string DbFunctionExpressionIsNotMethodCall([CanBeNull] object expression) => string.Format( @@ -227,23 +227,23 @@ public static string DbFunctionNonScalarCustomTranslation([CanBeNull] object fun function); /// - /// The column '{column}' on table '{table}' has unspecified default value SQL. Specify the SQL before using Entity Framework to create the database schema. + /// The default value SQL has not been specified for the column '{table}.{column}'. Specify the SQL before using Entity Framework to create the database schema. /// - public static string DefaultValueSqlUnspecified([CanBeNull] object column, [CanBeNull] object table) + public static string DefaultValueSqlUnspecified([CanBeNull] object table, [CanBeNull] object column) => string.Format( - GetString("DefaultValueSqlUnspecified", nameof(column), nameof(table)), - column, table); + GetString("DefaultValueSqlUnspecified", nameof(table), nameof(column)), + table, column); /// - /// The column '{column}' on table '{table}' has an unspecified default value. Specify a value before using Entity Framework to create the database schema. + /// The default value has not been specified for the column '{table}.{column}'. Specify a value before using Entity Framework to create the database schema. /// - public static string DefaultValueUnspecified([CanBeNull] object column, [CanBeNull] object table) + public static string DefaultValueUnspecified([CanBeNull] object table, [CanBeNull] object column) => string.Format( - GetString("DefaultValueUnspecified", nameof(column), nameof(table)), - column, table); + GetString("DefaultValueUnspecified", nameof(table), nameof(column)), + table, column); /// - /// The data deletion operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + /// The data deletion operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. /// public static string DeleteDataOperationNoModel([CanBeNull] object table) => string.Format( @@ -284,7 +284,7 @@ public static string DuplicateCheckConstraint([CanBeNull] object checkConstraint checkConstraint, entityType); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different collations ('{collation1}' and '{collation2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different collations ('{collation1}' and '{collation2}'). /// public static string DuplicateColumnNameCollationMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object collation1, [CanBeNull] object collation2) => string.Format( @@ -292,7 +292,7 @@ public static string DuplicateColumnNameCollationMismatch([CanBeNull] object ent entityType1, property1, entityType2, property2, columnName, table, collation1, collation2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different comments ('{comment1}' and '{comment2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different comments ('{comment1}' and '{comment2}'). /// public static string DuplicateColumnNameCommentMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object comment1, [CanBeNull] object comment2) => string.Format( @@ -300,7 +300,7 @@ public static string DuplicateColumnNameCommentMismatch([CanBeNull] object entit entityType1, property1, entityType2, property2, columnName, table, comment1, comment2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different computed values ('{value1}' and '{value2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different computed values ('{value1}' and '{value2}'). /// public static string DuplicateColumnNameComputedSqlMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object value1, [CanBeNull] object value2) => string.Format( @@ -308,7 +308,7 @@ public static string DuplicateColumnNameComputedSqlMismatch([CanBeNull] object e entityType1, property1, entityType2, property2, columnName, table, value1, value2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different concurrency token configuration. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different concurrency token configurations. /// public static string DuplicateColumnNameConcurrencyTokenMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -316,7 +316,7 @@ public static string DuplicateColumnNameConcurrencyTokenMismatch([CanBeNull] obj entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different data types ('{dataType1}' and '{dataType2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different data types ('{dataType1}' and '{dataType2}'). /// public static string DuplicateColumnNameDataTypeMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object dataType1, [CanBeNull] object dataType2) => string.Format( @@ -324,7 +324,7 @@ public static string DuplicateColumnNameDataTypeMismatch([CanBeNull] object enti entityType1, property1, entityType2, property2, columnName, table, dataType1, dataType2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different default values ('{value1}' and '{value2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different default values ('{value1}' and '{value2}'). /// public static string DuplicateColumnNameDefaultSqlMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object value1, [CanBeNull] object value2) => string.Format( @@ -332,7 +332,7 @@ public static string DuplicateColumnNameDefaultSqlMismatch([CanBeNull] object en entityType1, property1, entityType2, property2, columnName, table, value1, value2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different fixed length configuration. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different fixed length configuration. /// public static string DuplicateColumnNameFixedLengthMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -340,7 +340,7 @@ public static string DuplicateColumnNameFixedLengthMismatch([CanBeNull] object e entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different stored computed column settings ('{value1}' and '{value2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different stored computed column settings ('{value1}' and '{value2}'). /// public static string DuplicateColumnNameIsStoredMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object value1, [CanBeNull] object value2) => string.Format( @@ -348,7 +348,7 @@ public static string DuplicateColumnNameIsStoredMismatch([CanBeNull] object enti entityType1, property1, entityType2, property2, columnName, table, value1, value2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different max lengths ('{maxLength1}' and '{maxLength2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different maximum lengths ('{maxLength1}' and '{maxLength2}'). /// public static string DuplicateColumnNameMaxLengthMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object maxLength1, [CanBeNull] object maxLength2) => string.Format( @@ -356,7 +356,7 @@ public static string DuplicateColumnNameMaxLengthMismatch([CanBeNull] object ent entityType1, property1, entityType2, property2, columnName, table, maxLength1, maxLength2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different nullability. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different nullability settings. /// public static string DuplicateColumnNameNullabilityMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -364,7 +364,7 @@ public static string DuplicateColumnNameNullabilityMismatch([CanBeNull] object e entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different precision ('{precision1}' and '{precision2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different precisions ('{precision1}' and '{precision2}'). /// public static string DuplicateColumnNamePrecisionMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object precision1, [CanBeNull] object precision2) => string.Format( @@ -372,7 +372,7 @@ public static string DuplicateColumnNamePrecisionMismatch([CanBeNull] object ent entityType1, property1, entityType2, property2, columnName, table, precision1, precision2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different scale ('{scale1}' and '{scale2}'). + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different scales ('{scale1}' and '{scale2}'). /// public static string DuplicateColumnNameScaleMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table, [CanBeNull] object scale1, [CanBeNull] object scale2) => string.Format( @@ -380,7 +380,7 @@ public static string DuplicateColumnNameScaleMismatch([CanBeNull] object entityT entityType1, property1, entityType2, property2, columnName, table, scale1, scale2); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different unicode configuration. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different unicode configurations. /// public static string DuplicateColumnNameUnicodenessMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -388,7 +388,7 @@ public static string DuplicateColumnNameUnicodenessMismatch([CanBeNull] object e entityType1, property1, entityType2, property2, columnName, table); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but use different columns ({columnNames1} and {columnNames2}). + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but use different columns ({columnNames1} and {columnNames2}). /// public static string DuplicateForeignKeyColumnMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object foreignKeyName, [CanBeNull] object columnNames1, [CanBeNull] object columnNames2) => string.Format( @@ -396,7 +396,7 @@ public static string DuplicateForeignKeyColumnMismatch([CanBeNull] object foreig foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, table, foreignKeyName, columnNames1, columnNames2); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but with different delete behavior ('{deleteBehavior1}' and '{deleteBehavior2}'). + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but with different delete behavior ('{deleteBehavior1}' and '{deleteBehavior2}'). /// public static string DuplicateForeignKeyDeleteBehaviorMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object foreignKeyName, [CanBeNull] object deleteBehavior1, [CanBeNull] object deleteBehavior2) => string.Format( @@ -404,7 +404,7 @@ public static string DuplicateForeignKeyDeleteBehaviorMismatch([CanBeNull] objec foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, table, foreignKeyName, deleteBehavior1, deleteBehavior2); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but referencing different principal columns ({principalColumnNames1} and {principalColumnNames2}). + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but referencing different principal columns ({principalColumnNames1} and {principalColumnNames2}). /// public static string DuplicateForeignKeyPrincipalColumnMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object foreignKeyName, [CanBeNull] object principalColumnNames1, [CanBeNull] object principalColumnNames2) => string.Format( @@ -412,7 +412,7 @@ public static string DuplicateForeignKeyPrincipalColumnMismatch([CanBeNull] obje foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, table, foreignKeyName, principalColumnNames1, principalColumnNames2); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but referencing different principal tables ('{principalTable1}' and '{principalTable2}'). + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but referencing different principal tables ('{principalTable1}' and '{principalTable2}'). /// public static string DuplicateForeignKeyPrincipalTableMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object foreignKeyName, [CanBeNull] object principalTable1, [CanBeNull] object principalTable2) => string.Format( @@ -420,7 +420,7 @@ public static string DuplicateForeignKeyPrincipalTableMismatch([CanBeNull] objec foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, table, foreignKeyName, principalTable1, principalTable2); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{foreignKeyName}' but are declared on different tables ('{table1}' and '{table2}'). + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{foreignKeyName}', but are declared on different tables ('{table1}' and '{table2}'). /// public static string DuplicateForeignKeyTableMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object foreignKeyName, [CanBeNull] object table1, [CanBeNull] object table2) => string.Format( @@ -428,7 +428,7 @@ public static string DuplicateForeignKeyTableMismatch([CanBeNull] object foreign foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, foreignKeyName, table1, table2); /// - /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but with different uniqueness. + /// The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but with different uniqueness settings. /// public static string DuplicateForeignKeyUniquenessMismatch([CanBeNull] object foreignKeyProperties1, [CanBeNull] object entityType1, [CanBeNull] object foreignKeyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object foreignKeyName) => string.Format( @@ -436,7 +436,7 @@ public static string DuplicateForeignKeyUniquenessMismatch([CanBeNull] object fo foreignKeyProperties1, entityType1, foreignKeyProperties2, entityType2, table, foreignKeyName); /// - /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different columns ({columnNames1} and {columnNames2}). + /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different columns ({columnNames1} and {columnNames2}). /// public static string DuplicateIndexColumnMismatch([CanBeNull] object indexProperties1, [CanBeNull] object entityType1, [CanBeNull] object indexProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName, [CanBeNull] object columnNames1, [CanBeNull] object columnNames2) => string.Format( @@ -444,7 +444,7 @@ public static string DuplicateIndexColumnMismatch([CanBeNull] object indexProper indexProperties1, entityType1, indexProperties2, entityType2, table, indexName, columnNames1, columnNames2); /// - /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{indexName}' but are declared on different tables ('{table1}' and '{table2}'). + /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{indexName}', but are declared on different tables ('{table1}' and '{table2}'). /// public static string DuplicateIndexTableMismatch([CanBeNull] object indexProperties1, [CanBeNull] object entityType1, [CanBeNull] object indexProperties2, [CanBeNull] object entityType2, [CanBeNull] object indexName, [CanBeNull] object table1, [CanBeNull] object table2) => string.Format( @@ -452,7 +452,7 @@ public static string DuplicateIndexTableMismatch([CanBeNull] object indexPropert indexProperties1, entityType1, indexProperties2, entityType2, indexName, table1, table2); /// - /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different uniqueness. + /// The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different uniqueness settings. /// public static string DuplicateIndexUniquenessMismatch([CanBeNull] object indexProperties1, [CanBeNull] object entityType1, [CanBeNull] object indexProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName) => string.Format( @@ -460,7 +460,7 @@ public static string DuplicateIndexUniquenessMismatch([CanBeNull] object indexPr indexProperties1, entityType1, indexProperties2, entityType2, table, indexName); /// - /// The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{table}.{keyName}' but with different columns ({columnNames1} and {columnNames2}). + /// The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{table}.{keyName}', but with different columns ({columnNames1} and {columnNames2}). /// public static string DuplicateKeyColumnMismatch([CanBeNull] object keyProperties1, [CanBeNull] object entityType1, [CanBeNull] object keyProperties2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object keyName, [CanBeNull] object columnNames1, [CanBeNull] object columnNames2) => string.Format( @@ -468,7 +468,7 @@ public static string DuplicateKeyColumnMismatch([CanBeNull] object keyProperties keyProperties1, entityType1, keyProperties2, entityType2, table, keyName, columnNames1, columnNames2); /// - /// The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{keyName}' but on different tables ('{table1}' and '{table2}'). + /// The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{keyName}', but on different tables ('{table1}' and '{table2}'). /// public static string DuplicateKeyTableMismatch([CanBeNull] object keyProperties1, [CanBeNull] object entityType1, [CanBeNull] object keyProperties2, [CanBeNull] object entityType2, [CanBeNull] object keyName, [CanBeNull] object table1, [CanBeNull] object table2) => string.Format( @@ -536,7 +536,7 @@ public static string FromSqlNonComposable => GetString("FromSqlNonComposable"); /// - /// The property '{propertySpecification}' has specific configuration for the function '{function}', however it isn't mapped to a column on that function return. Remove the specific configuration or map an entity type that contains this property to '{function}'. + /// The property '{propertySpecification}' has specific configuration for the function '{function}', but it isn't mapped to a column on that function return. Remove the specific configuration, or map an entity type that contains this property to '{function}'. /// public static string FunctionOverrideMismatch([CanBeNull] object propertySpecification, [CanBeNull] object function) => string.Format( @@ -552,7 +552,7 @@ public static string IncompatibleTableCommentMismatch([CanBeNull] object table, table, entityType, otherEntityType, comment, otherComment); /// - /// Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}', there is a relationship between their primary keys in which '{entityType}' is the dependent and '{entityType}' has a base entity type mapped to a different table. Either map '{otherEntityType}' to a different table or invert the relationship between '{entityType}' and '{otherEntityType}'. + /// Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and there is a relationship between their primary keys in which '{entityType}' is the dependent, but '{entityType}' has a base entity type mapped to a different table. Either map '{otherEntityType}' to a different table, or invert the relationship between '{entityType}' and '{otherEntityType}'. /// public static string IncompatibleTableDerivedRelationship([CanBeNull] object table, [CanBeNull] object entityType, [CanBeNull] object otherEntityType) => string.Format( @@ -560,7 +560,7 @@ public static string IncompatibleTableDerivedRelationship([CanBeNull] object tab table, entityType, otherEntityType); /// - /// Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and it excluded from migration on one entity type, but not the other. Exclude the table from migrations on all entity types mapped to the table. + /// Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and is excluded from migrations on one entity type but not on the other. Exclude the table from migrations on all entity types mapped to the table. /// public static string IncompatibleTableExcludedMismatch([CanBeNull] object table, [CanBeNull] object entityType, [CanBeNull] object otherEntityType) => string.Format( @@ -584,7 +584,7 @@ public static string IncompatibleTableNoRelationship([CanBeNull] object table, [ table, entityType, otherEntityType); /// - /// Cannot use view '{view}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}', there is a relationship between their primary keys in which '{entityType}' is the dependent and '{entityType}' has a base entity type mapped to a different view. Either map '{otherEntityType}' to a different view or invert the relationship between '{entityType}' and '{otherEntityType}'. + /// Cannot use view '{view}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and there is a relationship between their primary keys in which '{entityType}' is the dependent, but '{entityType}' has a base entity type mapped to a different view. Either map '{otherEntityType}' to a different view, or invert the relationship between '{entityType}' and '{otherEntityType}'. /// public static string IncompatibleViewDerivedRelationship([CanBeNull] object view, [CanBeNull] object entityType, [CanBeNull] object otherEntityType) => string.Format( @@ -608,7 +608,7 @@ public static string IncorrectDefaultValueType([CanBeNull] object value, [CanBeN value, valueType, property, propertyType, entityType); /// - /// The data insertion operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + /// The data insertion operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. /// public static string InsertDataOperationNoModel([CanBeNull] object table) => string.Format( @@ -632,7 +632,7 @@ public static string InsertDataOperationValuesCountMismatch([CanBeNull] object v valuesCount, columnsCount, table); /// - /// Unable to translate collection subquery in projection since the parent query doesn't project key columns of all of it's tables which are required to generate results on client side. This can happen when trying to correlate on keyless entity or when using 'Distinct' or 'GroupBy' operations without projecting all of the key columns. + /// Unable to translate a collection subquery in a projection since the parent query doesn't project the key columns of all tables required to generate results on the client side. This can happen when trying to correlate on keyless entity or when using 'Distinct' or 'GroupBy' operations without projecting all of the key columns. /// public static string InsufficientInformationToIdentifyOuterElementOfCollectionJoin => GetString("InsufficientInformationToIdentifyOuterElementOfCollectionJoin"); @@ -660,7 +660,7 @@ public static string InvalidKeySelectorForGroupBy([CanBeNull] object keySelector keySelector, keyType); /// - /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' and it's derived from '{baseEntityType}'. Derived entity types cannot be mapped to a function. + /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}', but is derived from '{baseEntityType}'. Derived entity types cannot be mapped to a function. /// public static string InvalidMappedFunctionDerivedType([CanBeNull] object entityType, [CanBeNull] object functionName, [CanBeNull] object baseEntityType) => string.Format( @@ -668,7 +668,7 @@ public static string InvalidMappedFunctionDerivedType([CanBeNull] object entityT entityType, functionName, baseEntityType); /// - /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with return type '{returnType}'. Ensure that mapped function returns 'IQueryable<{clrType}>'. + /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with return type '{returnType}'. Ensure that the mapped function returns `IQueryable<{clrType}>`. /// public static string InvalidMappedFunctionUnmatchedReturn([CanBeNull] object entityType, [CanBeNull] object functionName, [CanBeNull] object returnType, [CanBeNull] object clrType) => string.Format( @@ -676,7 +676,7 @@ public static string InvalidMappedFunctionUnmatchedReturn([CanBeNull] object ent entityType, functionName, returnType, clrType); /// - /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with parameters {parameters}. Ensure that mapped function doesn't have any parameters. + /// The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with parameters {parameters}. Ensure that the mapped function doesn't have any parameters. /// public static string InvalidMappedFunctionWithParameters([CanBeNull] object entityType, [CanBeNull] object functionName, [CanBeNull] object parameters) => string.Format( @@ -684,7 +684,7 @@ public static string InvalidMappedFunctionWithParameters([CanBeNull] object enti entityType, functionName, parameters); /// - /// The entity type '{entityType}' is mapped to a SQL query and it's derived from '{baseEntityType}'. Derived entity types cannot be mapped to a different SQL query. + /// The entity type '{entityType}' is mapped to a SQL query, but is derived from '{baseEntityType}'. Derived entity types cannot be mapped to a different SQL query. /// public static string InvalidMappedSqlQueryDerivedType([CanBeNull] object entityType, [CanBeNull] object baseEntityType) => string.Format( @@ -704,7 +704,7 @@ public static string InvalidMinBatchSize => GetString("InvalidMinBatchSize"); /// - /// Queries performing '{method}' operation must have a deterministic sort order. Rewrite the query to apply an 'OrderBy' clause on the sequence before calling '{method}'. + /// Queries performing '{method}' operation must have a deterministic sort order. Rewrite the query to apply an 'OrderBy' operation on the sequence before calling '{method}'. /// public static string LastUsedWithoutOrderBy([CanBeNull] object method) => string.Format( @@ -736,7 +736,7 @@ public static string MigrationNotFound([CanBeNull] object migrationName) migrationName); /// - /// Entity type '{entityType}' doesn't contain a property mapped to the store-generated concurrency token column '{missingColumn}' that is used by another entity type sharing the table '{table}'. Add a store-generated property mapped to the same column to '{entityType}'. It can be in shadow state. + /// Entity type '{entityType}' doesn't contain a property mapped to the store-generated concurrency token column '{missingColumn}' which is used by another entity type sharing the table '{table}'. Add a store-generated property to '{entityType}' which is mapped to the same column; it may be in shadow state. /// public static string MissingConcurrencyColumn([CanBeNull] object entityType, [CanBeNull] object missingColumn, [CanBeNull] object table) => string.Format( @@ -744,7 +744,7 @@ public static string MissingConcurrencyColumn([CanBeNull] object entityType, [Ca entityType, missingColumn, table); /// - /// Unable to translate collection subquery in projection since it uses 'Distinct' or 'Group By' operations and doesn't project key columns of all of it's tables which are required to generate results on client side. Missing column: {column}. Either add column(s) to the projection or rewrite query to not use 'GroupBy'/'Distinct' operation. + /// Unable to translate a collection subquery in a projection since it uses 'Distinct' or 'Group By' operations and doesn't project key columns of all tables required to generate results on the client side. Missing column: {column}. Either add column(s) to the projection or rewrite the query to not use the 'GroupBy'/'Distinct' operation. /// public static string MissingIdentifyingProjectionInDistinctGroupBySubquery([CanBeNull] object column) => string.Format( @@ -752,13 +752,13 @@ public static string MissingIdentifyingProjectionInDistinctGroupBySubquery([CanB column); /// - /// Reverse could not be translated to the server because there is no ordering on the server side. + /// 'Reverse' could not be translated because there is no ordering on the server side. /// public static string MissingOrderingInSelectExpression => GetString("MissingOrderingInSelectExpression"); /// - /// No value provided for required parameter '{parameter}'. + /// No value was provided for the required parameter '{parameter}'. /// public static string MissingParameterValue([CanBeNull] object parameter) => string.Format( @@ -788,7 +788,7 @@ public static string NamedConnectionStringNotFound([CanBeNull] object name) name); /// - /// Root ambient transaction was completed before the nested transaction. The more nested transactions should be completed first. + /// A root ambient transaction was completed before the nested transaction. The more nested transactions should be completed first. /// public static string NestedAmbientTransactionError => GetString("NestedAmbientTransactionError"); @@ -806,13 +806,13 @@ public static string NoConnectionOrConnectionString => GetString("NoConnectionOrConnectionString"); /// - /// Cannot create a 'DbCommand' for a non-relational query. + /// Cannot create a DbCommand for a non-relational query. /// public static string NoDbCommand => GetString("NoDbCommand"); /// - /// FindMapping on a 'RelationalTypeMappingSource' with a non-relational 'TypeMappingInfo'. + /// 'FindMapping' was called on a 'RelationalTypeMappingSource' with a non-relational 'TypeMappingInfo'. /// public static string NoneRelationalTypeMappingOnARelationalTypeMappingSource => GetString("NoneRelationalTypeMappingOnARelationalTypeMappingSource"); @@ -850,13 +850,13 @@ public static string NonTPHViewClash([CanBeNull] object entityType, [CanBeNull] entityType, otherEntityType, view); /// - /// No relational database providers are configured. Configure a database provider using 'OnConfiguring' or by creating an ImmutableDbContextOptions with a database provider configured and passing it to the context. + /// No relational database providers are configured. Configure a database provider using 'OnConfiguring' or by creating an ImmutableDbContextOptions with a configured database provider and passing it to the context. /// public static string NoProviderConfigured => GetString("NoProviderConfigured"); /// - /// Expression '{sqlExpression}' in SQL tree does not have type mapping assigned. + /// Expression '{sqlExpression}' in the SQL tree does not have a type mapping assigned. /// public static string NullTypeMappingInSqlTree([CanBeNull] object sqlExpression) => string.Format( @@ -878,7 +878,7 @@ public static string PendingAmbientTransaction => GetString("PendingAmbientTransaction"); /// - /// Unable to translate set operation when both sides don't assign values to same properties in the nominal type. Please make sure that the properties are inclued on both sides, consider assigning default value if the property doesn't require a specific value. + /// Unable to translate set operations when both sides don't assign values to the same properties in the nominal type. Please make sure that the same properties are included on both sides, and consider assigning default values if a property doesn't require a specific value. /// public static string ProjectionMappingCountMismatch => GetString("ProjectionMappingCountMismatch"); @@ -906,7 +906,7 @@ public static string RelationalNotInUse => GetString("RelationalNotInUse"); /// - /// Cannot create 'SelectExpression' with custom 'TableExpressionBase' since result type '{entityType}' is part of hierarchy and does not contain a discriminator property. + /// Cannot create a 'SelectExpression' with a custom 'TableExpressionBase' since the result type '{entityType}' is part of a hierarchy and does not contain a discriminator property. /// public static string SelectExpressionNonTPHWithCustomTable([CanBeNull] object entityType) => string.Format( @@ -926,13 +926,13 @@ public static string SetOperationsOnDifferentStoreTypes => GetString("SetOperationsOnDifferentStoreTypes"); /// - /// This LINQ query is being executed in split-query mode. The SQL shown is for the first query to be executed. Additional queries may also be executed depending on the results of the first query. + /// This LINQ query is being executed in split-query mode, and the SQL shown is for the first query to be executed. Additional queries may also be executed depending on the results of the first query. /// public static string SplitQueryString => GetString("SplitQueryString"); /// - /// The property '{propertySpecification}' has specific configuration for the SQL query '{query}', however it isn't mapped to a column on that query. Remove the specific configuration or map an entity type that contains this property to '{query}'. + /// The property '{propertySpecification}' has specific configuration for the SQL query '{query}', but isn't mapped to a column on that query. Remove the specific configuration, or map an entity type that contains this property to '{query}'. /// public static string SqlQueryOverrideMismatch([CanBeNull] object propertySpecification, [CanBeNull] object query) => string.Format( @@ -948,7 +948,7 @@ public static string TableNotMappedEntityType([CanBeNull] object entityType, [Ca entityType, table); /// - /// The property '{propertySpecification}' has specific configuration for the table '{table}', however it isn't mapped to a column on that table. Remove the specific configuration or map an entity type that contains this property to '{table}'. + /// The property '{propertySpecification}' has specific configuration for the table '{table}', but isn't mapped to a column on that table. Remove the specific configuration, or map an entity type that contains this property to '{table}'. /// public static string TableOverrideMismatch([CanBeNull] object propertySpecification, [CanBeNull] object table) => string.Format( @@ -956,7 +956,7 @@ public static string TableOverrideMismatch([CanBeNull] object propertySpecificat propertySpecification, table); /// - /// The element type of result of '{dbFunction}' is mapped to '{entityType}'. This is not supported since '{entityType}' is part of hierarchy and does not contain a discriminator property. + /// The element type of the result of '{dbFunction}' is mapped to '{entityType}'. This is not supported since '{entityType}' is part of hierarchy and does not contain a discriminator property. /// public static string TableValuedFunctionNonTPH([CanBeNull] object dbFunction, [CanBeNull] object entityType) => string.Format( @@ -964,7 +964,7 @@ public static string TableValuedFunctionNonTPH([CanBeNull] object dbFunction, [C dbFunction, entityType); /// - /// Timeout must be less than or equal to Int32.MaxValue (2147483647) seconds. Provided: {seconds} seconds. + /// Timeout must be less than or equal to Int32.MaxValue (2147483647) seconds. Provided timeout: {seconds} seconds. /// public static string TimeoutTooBig([CanBeNull] object seconds) => string.Format( @@ -972,7 +972,7 @@ public static string TimeoutTooBig([CanBeNull] object seconds) seconds); /// - /// Timeout must be greater than or equal to zero. Provided: {seconds} seconds. + /// Timeout must be greater than or equal to zero. Provided timeout: {seconds} seconds. /// public static string TimeoutTooSmall([CanBeNull] object seconds) => string.Format( @@ -988,7 +988,7 @@ public static string TooFewReaderFields([CanBeNull] object expected, [CanBeNull] expected, actual); /// - /// '{entityType}' is mapped to the table '{table}' while '{otherEntityType}' is mapped to the table '{otherTable}'. Map all the entity types in the hierarchy to the same table or remove the discriminator and map all of them to different tables. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. + /// '{entityType}' is mapped to the table '{table}' while '{otherEntityType}' is mapped to the table '{otherTable}'. Map all the entity types in the hierarchy to the same table, or remove the discriminator and map them all to different tables. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. /// public static string TPHTableMismatch([CanBeNull] object entityType, [CanBeNull] object table, [CanBeNull] object otherEntityType, [CanBeNull] object otherTable) => string.Format( @@ -996,7 +996,7 @@ public static string TPHTableMismatch([CanBeNull] object entityType, [CanBeNull] entityType, table, otherEntityType, otherTable); /// - /// '{entityType}' is mapped to the view '{view}' while '{otherEntityType}' is mapped to the view '{otherView}'. Map all the entity types in the hierarchy to the same view or remove the discriminator and map all of them to different views. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. + /// '{entityType}' is mapped to the view '{view}' while '{otherEntityType}' is mapped to the view '{otherView}'. Map all the entity types in the hierarchy to the same view, or remove the discriminator and map them all to different views. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. /// public static string TPHViewMismatch([CanBeNull] object entityType, [CanBeNull] object view, [CanBeNull] object otherEntityType, [CanBeNull] object otherView) => string.Format( @@ -1016,7 +1016,7 @@ public static string TransactionAssociatedWithDifferentConnection => GetString("TransactionAssociatedWithDifferentConnection"); /// - /// Unable to bind '{memberType}' '{member}' to entity projection of '{entityType}'. + /// Unable to bind '{memberType}.{member}' to an entity projection of '{entityType}'. /// public static string UnableToBindMemberToEntityProjection([CanBeNull] object memberType, [CanBeNull] object member, [CanBeNull] object entityType) => string.Format( @@ -1024,7 +1024,7 @@ public static string UnableToBindMemberToEntityProjection([CanBeNull] object mem memberType, member, entityType); /// - /// The query has been configured to use '{splitQueryEnumValue}' and contains a collection in the 'Select' call, which could not be split into separate query. Please remove '{splitQueryMethodName}' if applied or add '{singleQueryMethodName}' to the query. + /// The query has been configured to use '{splitQueryEnumValue}', but contains a collection in the 'Select' call which could not be split into a separate query. Remove '{splitQueryMethodName}' if applied, or add '{singleQueryMethodName}' to the query. /// public static string UnableToSplitCollectionProjectionInSplitQuery([CanBeNull] object splitQueryEnumValue, [CanBeNull] object splitQueryMethodName, [CanBeNull] object singleQueryMethodName) => string.Format( @@ -1080,7 +1080,7 @@ public static string UnsupportedStoreType([CanBeNull] object type) type); /// - /// No mapping to a relational type can be found for the CLR type '{clrType}'. + /// No mapping to a relational type could be found for the CLR type '{clrType}'. /// public static string UnsupportedType([CanBeNull] object clrType) => string.Format( @@ -1088,7 +1088,7 @@ public static string UnsupportedType([CanBeNull] object clrType) clrType); /// - /// Database operation expected to affect {expectedRows} row(s) but actually affected {actualRows} row(s). Data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions. + /// The database operation was expected to affect {expectedRows} row(s), but actually affected {actualRows} row(s); data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions. /// public static string UpdateConcurrencyException([CanBeNull] object expectedRows, [CanBeNull] object actualRows) => string.Format( @@ -1112,7 +1112,7 @@ public static string UpdateDataOperationKeyValuesCountMismatch([CanBeNull] objec valuesCount, columnsCount, table); /// - /// The data modification operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + /// The data modification operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. /// public static string UpdateDataOperationNoModel([CanBeNull] object table) => string.Format( @@ -1150,7 +1150,7 @@ public static string UpdateStoreException => GetString("UpdateStoreException"); /// - /// The property '{propertySpecification}' has specific configuration for the view '{table}', however it isn't mapped to a column on that view. Remove the specific configuration or map an entity type that contains this property to '{table}'. + /// The property '{propertySpecification}' has specific configuration for the view '{table}', but isn't mapped to a column on that view. Remove the specific configuration, or map an entity type that contains this property to '{table}'. /// public static string ViewOverrideMismatch([CanBeNull] object propertySpecification, [CanBeNull] object table) => string.Format( @@ -1190,7 +1190,7 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.Properties.RelationalStrings", typeof(RelationalResources).Assembly); /// - /// An ambient transaction has been detected. The current provider does not support ambient transactions. See http://go.microsoft.com/fwlink/?LinkId=800142 + /// An ambient transaction has been detected, but the current provider does not support ambient transactions. See http://go.microsoft.com/fwlink/?LinkId=800142 /// public static EventDefinition LogAmbientTransaction([NotNull] IDiagnosticsLogger logger) { @@ -1406,7 +1406,7 @@ public static EventDefinition LogBeginningTransaction([NotNull] IDiagnos } /// - /// The 'bool' property '{property}' on entity type '{entityType}' is configured with a database-generated default. This default will always be used for inserts when the property has the value 'false', since this is the CLR default for the 'bool' type. Consider using the nullable 'bool?' type instead so that the default will only be used for inserts when the property value is 'null'. + /// The 'bool' property '{property}' on entity type '{entityType}' is configured with a database-generated default. This default will always be used for inserts when the property has the value 'false', since this is the CLR default for the 'bool' type. Consider using the nullable 'bool?' type instead, so that the default will only be used for inserts when the property value is 'null'. /// public static EventDefinition LogBoolWithDefaultWarning([NotNull] IDiagnosticsLogger logger) { @@ -1814,7 +1814,7 @@ public static EventDefinition LogExplicitTransactionEnlisted([NotNull] I } /// - /// The foreign key {foreignKeyProperties} on the entity type '{entityType}' targeting '{principalEntityType}' cannot be represented in the database. Either the properties {foreignKeyProperties} aren't mapped to table '{table}' or the principal properties {principalProperties} aren't mapped to table '{principalTable}'. All foreign key properties must map to the table that the dependent type is mapped to and all principal properties must map to a single table that the principal type is mapped to. + /// The foreign key {foreignKeyProperties} on the entity type '{entityType}' targeting '{principalEntityType}' cannot be represented in the database. Either the properties {foreignKeyProperties} aren't mapped to table '{table}', or the principal properties {principalProperties} aren't mapped to table '{principalTable}'. All foreign key properties must map to the table to which the dependent type is mapped, and all principal properties must map to a single table to which the principal type is mapped. /// public static FallbackEventDefinition LogForeignKeyPropertiesMappedToUnrelatedTables([NotNull] IDiagnosticsLogger logger) { @@ -1883,7 +1883,7 @@ public static EventDefinition LogGeneratingUp([NotNull] IDiagnosticsLogg } /// - /// Property '{property}' on entity type '{entityType}' is part of a primary or alternate key but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unique values. + /// Property '{property}' on entity type '{entityType}' is part of a primary or alternate key, but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unique values. /// public static EventDefinition LogKeyHasDefaultValue([NotNull] IDiagnosticsLogger logger) { @@ -1955,7 +1955,7 @@ public static EventDefinition LogMigrationAttributeMissingWarning([NotNu } /// - /// Compiling a query which loads related collections for more than one collection navigation either via 'Include' or through projection but no 'QuerySplittingBehavior' has been configured. By default Entity Framework will use 'QuerySplittingBehavior.SingleQuery' which can potentially result in slow query performance. See https://go.microsoft.com/fwlink/?linkid=2134277 for more information. To identify the query that's triggering this warning call 'ConfigureWarnings(w => w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))'. + /// Compiling a query which loads related collections for more than one collection navigation, either via 'Include' or through projection, but no 'QuerySplittingBehavior' has been configured. By default, Entity Framework will use 'QuerySplittingBehavior.SingleQuery', which can potentially result in slow query performance. See https://go.microsoft.com/fwlink/?linkid=2134277 for more information. To identify the query that's triggering this warning call 'ConfigureWarnings(w => w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))'. /// public static EventDefinition LogMultipleCollectionIncludeWarning([NotNull] IDiagnosticsLogger logger) { @@ -1979,7 +1979,7 @@ public static EventDefinition LogMultipleCollectionIncludeWarning([NotNull] IDia } /// - /// The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. None of these properties are mapped to a column in any table. This index will not be created in the database. + /// The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}, but none of these properties are mapped to a column in any table. This index will not be created in the database. /// public static EventDefinition LogNamedIndexAllPropertiesNotToMappedToAnyTable([NotNull] IDiagnosticsLogger logger) { @@ -2003,7 +2003,7 @@ public static EventDefinition LogNamedIndexAllProperties } /// - /// The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties should be mapped for the index to be created in the database. + /// The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties must be mapped for the index to be created in the database. /// public static EventDefinition LogNamedIndexPropertiesBothMappedAndNotMappedToTable([NotNull] IDiagnosticsLogger logger) { @@ -2144,7 +2144,7 @@ public static EventDefinition LogOpeningConnection([NotNull] IDi } /// - /// Possible unintended use of method Equals(object) for arguments '{left}' and '{right}' of different types in query. This comparison will always return 'false'. + /// Possible unintended use of method 'Equals' for arguments '{left}' and '{right}' of different types in a query. This comparison will always return false. /// public static EventDefinition LogPossibleUnintendedUseOfEquals([NotNull] IDiagnosticsLogger logger) { @@ -2168,7 +2168,7 @@ public static EventDefinition LogPossibleUnintendedUseOfEquals([ } /// - /// Possible unintended use of a potentially throwing aggregate method (Min, Max, Average) in a subquery. Client evaluation will be used and operator will throw if no data exists. Changing the subquery result type to a nullable type will allow full translation. + /// Possible unintended use of a potentially throwing aggregate operator ('Min', 'Max', 'Average') in a subquery. Client evaluation will be used and the operator will throw if no data exists. Changing the subquery result type to a nullable type will allow the operator to be translated. /// [Obsolete] public static EventDefinition LogQueryPossibleExceptionWithAggregateOperatorWarning([NotNull] IDiagnosticsLogger logger) @@ -2385,7 +2385,7 @@ public static EventDefinition LogTransactionError([NotNull] IDiagnosticsLogger l } /// - /// The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. None of these properties are mapped to a column in any table. This index will not be created in the database. + /// The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}, but none of these properties are mapped to a column in any table. This index will not be created in the database. /// public static EventDefinition LogUnnamedIndexAllPropertiesNotToMappedToAnyTable([NotNull] IDiagnosticsLogger logger) { @@ -2409,7 +2409,7 @@ public static EventDefinition LogUnnamedIndexAllPropertiesNotToM } /// - /// The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties should be mapped for the index to be created in the database. + /// The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties must be mapped for the index to be created in the database. /// public static EventDefinition LogUnnamedIndexPropertiesBothMappedAndNotMappedToTable([NotNull] IDiagnosticsLogger logger) { diff --git a/src/EFCore.Relational/Properties/RelationalStrings.resx b/src/EFCore.Relational/Properties/RelationalStrings.resx index e2bdd4039b3..0c5fe29c176 100644 --- a/src/EFCore.Relational/Properties/RelationalStrings.resx +++ b/src/EFCore.Relational/Properties/RelationalStrings.resx @@ -1,17 +1,17 @@  - @@ -118,34 +118,34 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Unable to deserialize sequence from model metadata. See inner exception for details. + Unable to deserialize a sequence from model metadata. See inner exception for details. - Invalid type for sequence. Valid types are 'Int64' (the default), 'Int32', 'Int16', 'Byte' and 'Decimal'. + Invalid type for sequence. Valid types are long (the default), int, short, byte and decimal. - The 'DbConnection' is currently in use. The connection can only be changed when the existing connection is not being used. + The instance of DbConnection is currently in use. The connection can only be changed when the existing connection is not being used. Unable to translate the given 'GroupBy' pattern. Call 'AsEnumerable' before 'GroupBy' to evaluate it client-side. - The column '{column}' on table '{table}' has unspecified computed column SQL. Specify the SQL before using Entity Framework to create the database schema. + The computed column SQL has not been specified for the column '{table}.{column}'. Specify the SQL before using Entity Framework to create the database schema. - An ambient transaction has been detected. The ambient transaction needs to be completed before beginning a transaction on this connection. + An ambient transaction has been detected. The ambient transaction needs to be completed before starting a new transaction on this connection. {conflictingConfiguration} cannot be set for '{property}' at the same time as {existingConfiguration}. Remove one of these values. - The connection is currently enlisted in a transaction. The enlisted transaction needs to be completed before starting a transaction. + The connection is currently enlisted in a transaction. The enlisted transaction needs to be completed before starting a new transaction. An instance of entity type '{firstEntityType}' and an instance of entity type '{secondEntityType}' are mapped to the same row, but have different original property values for the properties {firstProperty} and {secondProperty} mapped to '{column}'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting values. - The instance of entity type '{firstEntityType}' and the instance of entity type '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different original property values {firstConflictingValues} and {secondConflictingValues} for the column '{column}'. + Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different original property values {firstConflictingValues} and {secondConflictingValues} for the column '{column}'. An instance of entity type '{firstEntityType}' is marked as '{firstState}', but an instance of entity type '{secondEntityType}' is marked as '{secondState}' and both are mapped to the same row. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the key values. @@ -154,22 +154,22 @@ The instance of entity type '{firstEntityType}' with the key value '{firstKeyValue}' is marked as '{firstState}', but the instance of entity type '{secondEntityType}' with the key value '{secondKeyValue}' is marked as '{secondState}' and both are mapped to the same row. - An instance of entity type '{firstEntityType}' and an instance of entity type '{secondEntityType}' are mapped to the same row, but have different property values for the properties {firstProperty} and {secondProperty} mapped to '{column}'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting values. + Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row, but have different property values for the properties {firstProperty} and {secondProperty} mapped to '{column}'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting values. - The instance of entity type '{firstEntityType}' and the instance of entity type '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different property values '{firstConflictingValue}' and '{secondConflictingValue}' for the column '{column}'. + Instances of entity types '{firstEntityType}' and '{secondEntityType}' are mapped to the same row with the key value '{keyValue}', but have different property values '{firstConflictingValue}' and '{secondConflictingValue}' for the column '{column}'. The database model hasn't been initialized. The model needs to be finalized before the database model can be accessed. - There is no property mapped to the column '{table}.{column}' used in a data operation. Either add a property mapped to this column or specify the column types in the data operation. + There is no property mapped to the column '{table}.{column}' which is used in a data operation. Either add a property mapped to this column, or specify the column types in the data operation. - There is no entity type mapped to the table '{table}' used in a data operation. Either add the corresponding entity type to the model or specify the column types in the data operation. + There is no entity type mapped to the table '{table}' which is used in a data operation. Either add the corresponding entity type to the model, or specify the column types in the data operation. - The provided DbFunction expression '{expression}' is invalid. The expression should be a lambda expression containing a single method call to the target static method. Default values can be provided as arguments if required. E.g. '() => SomeClass.SomeMethod(null, 0)'. + The provided DbFunction expression '{expression}' is invalid. The expression must be a lambda expression containing a single method call to the target static method. Default values can be provided as arguments if required, e.g. '() => SomeClass.SomeMethod(null, 0)' The DbFunction '{function}' is generic. Mapping generic methods as a DbFunction is not supported. @@ -199,13 +199,13 @@ Cannot set custom translation on the DbFunction '{function}' since it is not a scalar function. - The column '{column}' on table '{table}' has unspecified default value SQL. Specify the SQL before using Entity Framework to create the database schema. + The default value SQL has not been specified for the column '{table}.{column}'. Specify the SQL before using Entity Framework to create the database schema. - The column '{column}' on table '{table}' has an unspecified default value. Specify a value before using Entity Framework to create the database schema. + The default value has not been specified for the column '{table}.{column}'. Specify a value before using Entity Framework to create the database schema. - The data deletion operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + The data deletion operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. The number of key column types ({typesCount}) doesn't match the number of key columns ({columnsCount}) for the data deletion operation on '{table}'. Provide the same number of key column types and key columns. @@ -221,76 +221,76 @@ The check constraint '{checkConstraint}' cannot be added to the entity type '{entityType}' because another check constraint with the same name already exists. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different collations ('{collation1}' and '{collation2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different collations ('{collation1}' and '{collation2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different comments ('{comment1}' and '{comment2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different comments ('{comment1}' and '{comment2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different computed values ('{value1}' and '{value2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different computed values ('{value1}' and '{value2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different concurrency token configuration. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different concurrency token configurations. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different data types ('{dataType1}' and '{dataType2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different data types ('{dataType1}' and '{dataType2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different default values ('{value1}' and '{value2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different default values ('{value1}' and '{value2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different fixed length configuration. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different fixed length configuration. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured to use different stored computed column settings ('{value1}' and '{value2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured to use different stored computed column settings ('{value1}' and '{value2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different max lengths ('{maxLength1}' and '{maxLength2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different maximum lengths ('{maxLength1}' and '{maxLength2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different nullability. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different nullability settings. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different precision ('{precision1}' and '{precision2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different precisions ('{precision1}' and '{precision2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different scale ('{scale1}' and '{scale2}'). + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different scales ('{scale1}' and '{scale2}'). - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different unicode configuration. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different unicode configurations. - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but use different columns ({columnNames1} and {columnNames2}). + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but use different columns ({columnNames1} and {columnNames2}). - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but with different delete behavior ('{deleteBehavior1}' and '{deleteBehavior2}'). + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but with different delete behavior ('{deleteBehavior1}' and '{deleteBehavior2}'). - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but referencing different principal columns ({principalColumnNames1} and {principalColumnNames2}). + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but referencing different principal columns ({principalColumnNames1} and {principalColumnNames2}). - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but referencing different principal tables ('{principalTable1}' and '{principalTable2}'). + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but referencing different principal tables ('{principalTable1}' and '{principalTable2}'). - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{foreignKeyName}' but are declared on different tables ('{table1}' and '{table2}'). + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{foreignKeyName}', but are declared on different tables ('{table1}' and '{table2}'). - The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}' but with different uniqueness. + The foreign keys {foreignKeyProperties1} on '{entityType1}' and {foreignKeyProperties2} on '{entityType2}' are both mapped to '{table}.{foreignKeyName}', but with different uniqueness settings. - The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different columns ({columnNames1} and {columnNames2}). + The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different columns ({columnNames1} and {columnNames2}). - The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{indexName}' but are declared on different tables ('{table1}' and '{table2}'). + The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{indexName}', but are declared on different tables ('{table1}' and '{table2}'). - The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different uniqueness. + The indexes {indexProperties1} on '{entityType1}' and {indexProperties2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different uniqueness settings. - The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{table}.{keyName}' but with different columns ({columnNames1} and {columnNames2}). + The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{table}.{keyName}', but with different columns ({columnNames1} and {columnNames2}). - The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{keyName}' but on different tables ('{table1}' and '{table2}'). + The keys {keyProperties1} on '{entityType1}' and {keyProperties2} on '{entityType2}' are both mapped to '{keyName}', but on different tables ('{table1}' and '{table2}'). Either {param1} or {param2} must be null. @@ -317,16 +317,16 @@ 'FromSqlRaw' or 'FromSqlInterpolated' was called with non-composable SQL and with a query composing over it. Consider calling 'AsEnumerable' after the method to perform the composition on the client side. - The property '{propertySpecification}' has specific configuration for the function '{function}', however it isn't mapped to a column on that function return. Remove the specific configuration or map an entity type that contains this property to '{function}'. + The property '{propertySpecification}' has specific configuration for the function '{function}', but it isn't mapped to a column on that function return. Remove the specific configuration, or map an entity type that contains this property to '{function}'. Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and the comment '{comment}' does not match the comment '{otherComment}'. - Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}', there is a relationship between their primary keys in which '{entityType}' is the dependent and '{entityType}' has a base entity type mapped to a different table. Either map '{otherEntityType}' to a different table or invert the relationship between '{entityType}' and '{otherEntityType}'. + Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and there is a relationship between their primary keys in which '{entityType}' is the dependent, but '{entityType}' has a base entity type mapped to a different table. Either map '{otherEntityType}' to a different table, or invert the relationship between '{entityType}' and '{otherEntityType}'. - Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and it excluded from migration on one entity type, but not the other. Exclude the table from migrations on all entity types mapped to the table. + Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and is excluded from migrations on one entity type but not on the other. Exclude the table from migrations on all entity types mapped to the table. Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and the name '{keyName}' of the primary key {primaryKey} does not match the name '{otherName}' of the primary key {otherPrimaryKey}. @@ -335,7 +335,7 @@ Cannot use table '{table}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and potentially other entity types, but there is no linking relationship. Add a foreign key to '{entityType}' on the primary key properties and pointing to the primary key on another entity typed mapped to '{table}'. - Cannot use view '{view}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}', there is a relationship between their primary keys in which '{entityType}' is the dependent and '{entityType}' has a base entity type mapped to a different view. Either map '{otherEntityType}' to a different view or invert the relationship between '{entityType}' and '{otherEntityType}'. + Cannot use view '{view}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and there is a relationship between their primary keys in which '{entityType}' is the dependent, but '{entityType}' has a base entity type mapped to a different view. Either map '{otherEntityType}' to a different view, or invert the relationship between '{entityType}' and '{otherEntityType}'. Cannot use view '{view}' for entity type '{entityType}' since it is being used for entity type '{otherEntityType}' and there is no relationship between their primary keys. @@ -344,7 +344,7 @@ Cannot set default value '{value}' of type '{valueType}' on property '{property}' of type '{propertyType}' in entity type '{entityType}'. - The data insertion operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + The data insertion operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. The number of column types ({typesCount}) doesn't match the number of columns ({columnsCount}) for the data insertion operation on '{table}'. Provide the same number of column types and columns. @@ -353,7 +353,7 @@ The number of values ({valuesCount}) doesn't match the number of columns ({columnsCount}) for the data insertion operation on '{table}'. Provide the same number of values and columns. - Unable to translate collection subquery in projection since the parent query doesn't project key columns of all of it's tables which are required to generate results on client side. This can happen when trying to correlate on keyless entity or when using 'Distinct' or 'GroupBy' operations without projecting all of the key columns. + Unable to translate a collection subquery in a projection since the parent query doesn't project the key columns of all tables required to generate results on the client side. This can happen when trying to correlate on keyless entity or when using 'Distinct' or 'GroupBy' operations without projecting all of the key columns. The specified CommandTimeout value is not valid. It must be a positive number. @@ -365,16 +365,16 @@ The grouping key '{keySelector}' is of type '{keyType}' which is not valid key. - The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' and it's derived from '{baseEntityType}'. Derived entity types cannot be mapped to a function. + The entity type '{entityType}' is mapped to the DbFunction named '{functionName}', but is derived from '{baseEntityType}'. Derived entity types cannot be mapped to a function. - The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with return type '{returnType}'. Ensure that mapped function returns 'IQueryable<{clrType}>'. + The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with return type '{returnType}'. Ensure that the mapped function returns 'IQueryable<{clrType}>'. - The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with parameters {parameters}. Ensure that mapped function doesn't have any parameters. + The entity type '{entityType}' is mapped to the DbFunction named '{functionName}' with parameters {parameters}. Ensure that the mapped function doesn't have any parameters. - The entity type '{entityType}' is mapped to a SQL query and it's derived from '{baseEntityType}'. Derived entity types cannot be mapped to a different SQL query. + The entity type '{entityType}' is mapped to a SQL query, but is derived from '{baseEntityType}'. Derived entity types cannot be mapped to a different SQL query. The specified MaxBatchSize value is not valid. It must be a positive number. @@ -383,10 +383,10 @@ The specified MinBatchSize value is not valid. It must be a positive number. - Queries performing '{method}' operation must have a deterministic sort order. Rewrite the query to apply an 'OrderBy' clause on the sequence before calling '{method}'. + Queries performing '{method}' operation must have a deterministic sort order. Rewrite the query to apply an 'OrderBy' operation on the sequence before calling '{method}'. - An ambient transaction has been detected. The current provider does not support ambient transactions. See http://go.microsoft.com/fwlink/?LinkId=800142 + An ambient transaction has been detected, but the current provider does not support ambient transactions. See http://go.microsoft.com/fwlink/?LinkId=800142 Warning RelationalEventId.AmbientTransactionWarning @@ -422,7 +422,7 @@ Debug RelationalEventId.TransactionStarting string - The 'bool' property '{property}' on entity type '{entityType}' is configured with a database-generated default. This default will always be used for inserts when the property has the value 'false', since this is the CLR default for the 'bool' type. Consider using the nullable 'bool?' type instead so that the default will only be used for inserts when the property value is 'null'. + The 'bool' property '{property}' on entity type '{entityType}' is configured with a database-generated default. This default will always be used for inserts when the property has the value 'false', since this is the CLR default for the 'bool' type. Consider using the nullable 'bool?' type instead, so that the default will only be used for inserts when the property value is 'null'. Warning RelationalEventId.BoolWithDefaultWarning string string @@ -490,7 +490,7 @@ Debug RelationalEventId.ExplicitTransactionEnlisted string - The foreign key {foreignKeyProperties} on the entity type '{entityType}' targeting '{principalEntityType}' cannot be represented in the database. Either the properties {foreignKeyProperties} aren't mapped to table '{table}' or the principal properties {principalProperties} aren't mapped to table '{principalTable}'. All foreign key properties must map to the table that the dependent type is mapped to and all principal properties must map to a single table that the principal type is mapped to. + The foreign key {foreignKeyProperties} on the entity type '{entityType}' targeting '{principalEntityType}' cannot be represented in the database. Either the properties {foreignKeyProperties} aren't mapped to table '{table}', or the principal properties {principalProperties} aren't mapped to table '{principalTable}'. All foreign key properties must map to the table to which the dependent type is mapped, and all principal properties must map to a single table to which the principal type is mapped. Error RelationalEventId.ForeignKeyPropertiesMappedToUnrelatedTables string string string string string string string @@ -502,7 +502,7 @@ Debug RelationalEventId.MigrationGeneratingUpScript string - Property '{property}' on entity type '{entityType}' is part of a primary or alternate key but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unique values. + Property '{property}' on entity type '{entityType}' is part of a primary or alternate key, but has a constant default value set. Constant default values are not useful for primary or alternate keys since these properties must always have non-null unique values. Warning RelationalEventId.ModelValidationKeyDefaultValueWarning string string @@ -514,15 +514,15 @@ Warning RelationalEventId.MigrationAttributeMissingWarning string - Compiling a query which loads related collections for more than one collection navigation either via 'Include' or through projection but no 'QuerySplittingBehavior' has been configured. By default Entity Framework will use 'QuerySplittingBehavior.SingleQuery' which can potentially result in slow query performance. See https://go.microsoft.com/fwlink/?linkid=2134277 for more information. To identify the query that's triggering this warning call 'ConfigureWarnings(w => w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))'. + Compiling a query which loads related collections for more than one collection navigation, either via 'Include' or through projection, but no 'QuerySplittingBehavior' has been configured. By default, Entity Framework will use 'QuerySplittingBehavior.SingleQuery', which can potentially result in slow query performance. See https://go.microsoft.com/fwlink/?linkid=2134277 for more information. To identify the query that's triggering this warning call 'ConfigureWarnings(w => w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))'. Warning RelationalEventId.MultipleCollectionIncludeWarning - The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. None of these properties are mapped to a column in any table. This index will not be created in the database. + The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}, but none of these properties are mapped to a column in any table. This index will not be created in the database. Information RelationalEventId.AllIndexPropertiesNotToMappedToAnyTable string string string - The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties should be mapped for the index to be created in the database. + The index named '{indexName}' on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties must be mapped for the index to be created in the database. Error RelationalEventId.IndexPropertiesBothMappedAndNotMappedToTable string string string string @@ -546,11 +546,11 @@ Debug RelationalEventId.ConnectionOpening string string - Possible unintended use of method Equals(object) for arguments '{left}' and '{right}' of different types in query. This comparison will always return 'false'. + Possible unintended use of method 'Equals' for arguments '{left}' and '{right}' of different types in a query. This comparison will always return false. Warning RelationalEventId.QueryPossibleUnintendedUseOfEqualsWarning string string - Possible unintended use of a potentially throwing aggregate method (Min, Max, Average) in a subquery. Client evaluation will be used and operator will throw if no data exists. Changing the subquery result type to a nullable type will allow full translation. + Possible unintended use of a potentially throwing aggregate operator ('Min', 'Max', 'Average') in a subquery. Client evaluation will be used and the operator will throw if no data exists. Changing the subquery result type to a nullable type will allow the operator to be translated. Obsolete Warning RelationalEventId.QueryPossibleExceptionWithAggregateOperatorWarning @@ -586,11 +586,11 @@ Error RelationalEventId.TransactionError - The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. None of these properties are mapped to a column in any table. This index will not be created in the database. + The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}, but none of these properties are mapped to a column in any table. This index will not be created in the database. Information RelationalEventId.AllIndexPropertiesNotToMappedToAnyTable string string - The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties should be mapped for the index to be created in the database. + The unnamed index on the entity type '{entityType}' specifies properties {indexProperties}. Some properties are mapped to a column in a table, but the property '{propertyName}' is not. All of the properties must be mapped for the index to be created in the database. Error RelationalEventId.IndexPropertiesBothMappedAndNotMappedToTable string string string @@ -611,16 +611,16 @@ The migration '{migrationName}' was not found. - Entity type '{entityType}' doesn't contain a property mapped to the store-generated concurrency token column '{missingColumn}' that is used by another entity type sharing the table '{table}'. Add a store-generated property mapped to the same column to '{entityType}'. It can be in shadow state. + Entity type '{entityType}' doesn't contain a property mapped to the store-generated concurrency token column '{missingColumn}' which is used by another entity type sharing the table '{table}'. Add a store-generated property to '{entityType}' which is mapped to the same column; it may be in shadow state. - Unable to translate collection subquery in projection since it uses 'Distinct' or 'Group By' operations and doesn't project key columns of all of it's tables which are required to generate results on client side. Missing column: {column}. Either add column(s) to the projection or rewrite query to not use 'GroupBy'/'Distinct' operation. + Unable to translate a collection subquery in a projection since it uses 'Distinct' or 'Group By' operations and doesn't project key columns of all tables required to generate results on the client side. Missing column: {column}. Either add column(s) to the projection or rewrite the query to not use the 'GroupBy'/'Distinct' operation. - Reverse could not be translated to the server because there is no ordering on the server side. + 'Reverse' could not be translated to the server because there is no ordering on the server side. - No value provided for required parameter '{parameter}'. + No value was provided for the required parameter '{parameter}'. Cannot save changes for an entity in state '{entityState}'. @@ -632,7 +632,7 @@ A named connection string was used, but the name '{name}' was not found in the application's configuration. Note that named connection strings are only supported when using 'IConfiguration' and a service provider, such as in a typical ASP.NET Core application. See https://go.microsoft.com/fwlink/?linkid=850912 for more information. - Root ambient transaction was completed before the nested transaction. The more nested transactions should be completed first. + A root ambient transaction was completed before the nested transaction. The more nested transactions should be completed first. The connection does not have any active transactions. @@ -641,10 +641,10 @@ A relational store has been configured without specifying either the DbConnection or connection string to use. - Cannot create a 'DbCommand' for a non-relational query. + Cannot create a DbCommand for a non-relational query. - FindMapping on a 'RelationalTypeMappingSource' with a non-relational 'TypeMappingInfo'. + 'FindMapping' was called on a 'RelationalTypeMappingSource' with a non-relational 'TypeMappingInfo'. Cannot set 'IsNullable' on DbFunction '{functionName}' since the function does not represent a scalar function. @@ -659,10 +659,10 @@ Both '{entityType}' and '{otherEntityType}' are mapped to the view '{view}'. All the entity types in a hierarchy that don't have a discriminator must be mapped to different views. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. - No relational database providers are configured. Configure a database provider using 'OnConfiguring' or by creating an ImmutableDbContextOptions with a database provider configured and passing it to the context. + No relational database providers are configured. Configure a database provider using 'OnConfiguring' or by creating an ImmutableDbContextOptions with a configured database provider and passing it to the context. - Expression '{sqlExpression}' in SQL tree does not have type mapping assigned. + Expression '{sqlExpression}' in the SQL tree does not have a type mapping assigned. Cannot use the value provided for parameter '{parameter}' because it isn't assignable to type object[]. @@ -671,7 +671,7 @@ This connection was used with an ambient transaction. The original ambient transaction needs to be completed before this connection can be used outside of it. - Unable to translate set operation when both sides don't assign values to same properties in the nominal type. Please make sure that the properties are inclued on both sides, consider assigning default value if the property doesn't require a specific value. + Unable to translate set operations when both sides don't assign values to the same properties in the nominal type. Please make sure that the same properties are included on both sides, and consider assigning default values if a property doesn't require a specific value. The property '{property}' on entity type '{entityType}' is not mapped to the table '{table}'. @@ -683,7 +683,7 @@ Relational-specific methods can only be used when the context is using a relational database provider. - Cannot create 'SelectExpression' with custom 'TableExpressionBase' since result type '{entityType}' is part of hierarchy and does not contain a discriminator property. + Cannot create a 'SelectExpression' with a custom 'TableExpressionBase' since the result type '{entityType}' is part of a hierarchy and does not contain a discriminator property. Unable to translate set operation after client projection has been applied. Consider moving the set operation before the last 'Select' call. @@ -692,34 +692,34 @@ Unable to translate set operation when matching columns on both sides have different store types. - This LINQ query is being executed in split-query mode. The SQL shown is for the first query to be executed. Additional queries may also be executed depending on the results of the first query. + This LINQ query is being executed in split-query mode, and the SQL shown is for the first query to be executed. Additional queries may also be executed depending on the results of the first query. - The property '{propertySpecification}' has specific configuration for the SQL query '{query}', however it isn't mapped to a column on that query. Remove the specific configuration or map an entity type that contains this property to '{query}'. + The property '{propertySpecification}' has specific configuration for the SQL query '{query}', but isn't mapped to a column on that query. Remove the specific configuration, or map an entity type that contains this property to '{query}'. The entity type '{entityType}' is not mapped to the store object '{table}'. - The property '{propertySpecification}' has specific configuration for the table '{table}', however it isn't mapped to a column on that table. Remove the specific configuration or map an entity type that contains this property to '{table}'. + The property '{propertySpecification}' has specific configuration for the table '{table}', but isn't mapped to a column on that table. Remove the specific configuration, or map an entity type that contains this property to '{table}'. - The element type of result of '{dbFunction}' is mapped to '{entityType}'. This is not supported since '{entityType}' is part of hierarchy and does not contain a discriminator property. + The element type of the result of '{dbFunction}' is mapped to '{entityType}'. This is not supported since '{entityType}' is part of hierarchy and does not contain a discriminator property. - Timeout must be less than or equal to Int32.MaxValue (2147483647) seconds. Provided: {seconds} seconds. + Timeout must be less than or equal to Int32.MaxValue (2147483647) seconds. Provided timeout: {seconds} seconds. - Timeout must be greater than or equal to zero. Provided: {seconds} seconds. + Timeout must be greater than or equal to zero. Provided timeout: {seconds} seconds. The underlying reader doesn't have as many fields as expected. Expected: {expected}, actual: {actual}. - '{entityType}' is mapped to the table '{table}' while '{otherEntityType}' is mapped to the table '{otherTable}'. Map all the entity types in the hierarchy to the same table or remove the discriminator and map all of them to different tables. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. + '{entityType}' is mapped to the table '{table}' while '{otherEntityType}' is mapped to the table '{otherTable}'. Map all the entity types in the hierarchy to the same table, or remove the discriminator and map them all to different tables. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. - '{entityType}' is mapped to the view '{view}' while '{otherEntityType}' is mapped to the view '{otherView}'. Map all the entity types in the hierarchy to the same view or remove the discriminator and map all of them to different views. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. + '{entityType}' is mapped to the view '{view}' while '{otherEntityType}' is mapped to the view '{otherView}'. Map all the entity types in the hierarchy to the same view, or remove the discriminator and map them all to different views. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information. The connection is already in a transaction and cannot participate in another transaction. @@ -728,10 +728,10 @@ The specified transaction is not associated with the current connection. Only transactions associated with the current connection may be used. - Unable to bind '{memberType}' '{member}' to entity projection of '{entityType}'. + Unable to bind '{memberType}.{member}' to an entity projection of '{entityType}'. - The query has been configured to use '{splitQueryEnumValue}' and contains a collection in the 'Select' call, which could not be split into separate query. Please remove '{splitQueryMethodName}' if applied or add '{singleQueryMethodName}' to the query. + The query has been configured to use '{splitQueryEnumValue}', but contains a collection in the 'Select' call which could not be split into a separate query. Remove '{splitQueryMethodName}' if applied, or add '{singleQueryMethodName}' to the query. Unhandled expression '{expression}' of type '{expressionType}' encountered in '{visitor}'. @@ -752,10 +752,10 @@ The store type '{type}' is not supported by the current provider. - No mapping to a relational type can be found for the CLR type '{clrType}'. + No mapping to a relational type could be found for the CLR type '{clrType}'. - Database operation expected to affect {expectedRows} row(s) but actually affected {actualRows} row(s). Data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions. + The database operation was expected to affect {expectedRows} row(s), but actually affected {actualRows} row(s); data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions. The number of key column types ({typesCount}) doesn't match the number of key columns ({columnsCount}) for the data modification operation on '{table}'. Provide the same number of key column types and key columns. @@ -764,7 +764,7 @@ The number of key values ({valuesCount}) doesn't match the number of key columns ({columnsCount}) for the data modification operation on '{table}'. Provide the same number of key values and key columns. - The data modification operation on '{table}' is not associated with a model. Either add a model to the migration or specify the column types in all data operations. + The data modification operation on '{table}' is not associated with a model. Either add a model to the migration, or specify the column types in all data operations. The number of value rows ({valuesCount}) doesn't match the number of key rows ({keyCount}) for the data modification operation on '{table}'. Provide the same number of value rows and key rows. @@ -784,4 +784,4 @@ 'VisitChildren' must be overridden in the class deriving from 'SqlExpression'. - \ No newline at end of file + diff --git a/src/EFCore.SqlServer/Properties/SqlServerStrings.Designer.cs b/src/EFCore.SqlServer/Properties/SqlServerStrings.Designer.cs index a27dd034ead..3b1849793c8 100644 --- a/src/EFCore.SqlServer/Properties/SqlServerStrings.Designer.cs +++ b/src/EFCore.SqlServer/Properties/SqlServerStrings.Designer.cs @@ -28,13 +28,13 @@ public static string AlterIdentityColumn => GetString("AlterIdentityColumn"); /// - /// To set memory-optimized on a table on or off the table needs to be dropped and recreated. + /// To change the memory-optimized setting on a table, the table needs to be dropped and recreated. /// public static string AlterMemoryOptimizedTable => GetString("AlterMemoryOptimizedTable"); /// - /// When generating migrations SQL for {operation}, can't produce unterminated SQL with comments. + /// Can't produce unterminated SQL with comments when generating migrations SQL for {operation}, . /// public static string CannotProduceUnterminatedSQLWithComments([CanBeNull] object operation) => string.Format( @@ -42,7 +42,7 @@ public static string CannotProduceUnterminatedSQLWithComments([CanBeNull] object operation); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different identity increment. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different identity increment values. /// public static string DuplicateColumnIdentityIncrementMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -50,7 +50,7 @@ public static string DuplicateColumnIdentityIncrementMismatch([CanBeNull] object entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different identity seed. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different identity seed values. /// public static string DuplicateColumnIdentitySeedMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -58,7 +58,7 @@ public static string DuplicateColumnIdentitySeedMismatch([CanBeNull] object enti entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different value generation strategies. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different value generation strategies. /// public static string DuplicateColumnNameValueGenerationStrategyMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -66,7 +66,7 @@ public static string DuplicateColumnNameValueGenerationStrategyMismatch([CanBeNu entityType1, property1, entityType2, property2, columnName, table); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different hi-lo sequences. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different hi-lo sequences. /// public static string DuplicateColumnSequenceMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -74,7 +74,7 @@ public static string DuplicateColumnSequenceMismatch([CanBeNull] object entityTy entityType1, property1, entityType2, property2, columnName, table); /// - /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different clustered configuration. + /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different clustered configurations. /// public static string DuplicateIndexClusteredMismatch([CanBeNull] object index1, [CanBeNull] object entityType1, [CanBeNull] object index2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName) => string.Format( @@ -82,7 +82,7 @@ public static string DuplicateIndexClusteredMismatch([CanBeNull] object index1, index1, entityType1, index2, entityType2, table, indexName); /// - /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different fill factor configuration. + /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different fill factor configurations. /// public static string DuplicateIndexFillFactorMismatch([CanBeNull] object index1, [CanBeNull] object entityType1, [CanBeNull] object index2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName) => string.Format( @@ -90,7 +90,7 @@ public static string DuplicateIndexFillFactorMismatch([CanBeNull] object index1, index1, entityType1, index2, entityType2, table, indexName); /// - /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different included columns {includedColumns1} and {includedColumns2}. + /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different included columns: {includedColumns1} and {includedColumns2}. /// public static string DuplicateIndexIncludedMismatch([CanBeNull] object index1, [CanBeNull] object entityType1, [CanBeNull] object index2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName, [CanBeNull] object includedColumns1, [CanBeNull] object includedColumns2) => string.Format( @@ -98,7 +98,7 @@ public static string DuplicateIndexIncludedMismatch([CanBeNull] object index1, [ index1, entityType1, index2, entityType2, table, indexName, includedColumns1, includedColumns2); /// - /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different online configuration. + /// The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different online configurations. /// public static string DuplicateIndexOnlineMismatch([CanBeNull] object index1, [CanBeNull] object entityType1, [CanBeNull] object index2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object indexName) => string.Format( @@ -106,7 +106,7 @@ public static string DuplicateIndexOnlineMismatch([CanBeNull] object index1, [Ca index1, entityType1, index2, entityType2, table, indexName); /// - /// The keys {key1} on '{entityType1}' and {key2} on '{entityType2}' are both mapped to '{table}.{keyName}' but with different clustering. + /// The keys {key1} on '{entityType1}' and {key2} on '{entityType2}' are both mapped to '{table}.{keyName}', but with different clustering configurations. /// public static string DuplicateKeyMismatchedClustering([CanBeNull] object key1, [CanBeNull] object entityType1, [CanBeNull] object key2, [CanBeNull] object entityType2, [CanBeNull] object table, [CanBeNull] object keyName) => string.Format( @@ -160,7 +160,7 @@ public static string IndexTableRequired => GetString("IndexTableRequired"); /// - /// The expression passed to the 'propertyReference' parameter of the 'FreeText' method is not a valid reference to a property. The expression should represent a reference to a full-text indexed property on the object referenced in the from clause: 'from e in context.Entities where EF.Functions.FreeText(e.SomeProperty, textToSearchFor) select e' + /// The expression passed to the 'propertyReference' parameter of the 'FreeText' method is not a valid reference to a property. The expression must represent a reference to a full-text indexed property on the object referenced in the from clause: 'from e in context.Entities where EF.Functions.FreeText(e.SomeProperty, textToSearchFor) select e' /// public static string InvalidColumnNameForFreeText => GetString("InvalidColumnNameForFreeText"); @@ -174,7 +174,7 @@ public static string InvalidTableToIncludeInScaffolding([CanBeNull] object table table); /// - /// The properties {properties} are configured to use 'Identity' value generator and are mapped to the same table '{table}'. Only one column per table can be configured as 'Identity'. Call 'ValueGeneratedNever' for properties that should not use 'Identity'. + /// The properties {properties} are configured to use 'Identity' value generation and are mapped to the same table '{table}', but only one column per table can be configured as 'Identity'. Call 'ValueGeneratedNever' for properties that should not use 'Identity'. /// public static string MultipleIdentityColumns([CanBeNull] object properties, [CanBeNull] object table) => string.Format( @@ -182,13 +182,13 @@ public static string MultipleIdentityColumns([CanBeNull] object properties, [Can properties, table); /// - /// The database name could not be determined. To use EnsureDeleted, the connection string must specify Initial Catalog. + /// The database name could not be determined. To use 'EnsureDeleted', the connection string must specify 'Initial Catalog'. /// public static string NoInitialCatalog => GetString("NoInitialCatalog"); /// - /// The property '{property}' on entity type '{entityType}' is configured to use 'SequenceHiLo' value generator, which is only intended for keys. If this was intentional configure an alternate key on the property, otherwise call 'ValueGeneratedNever' or configure store generation for this property. + /// The property '{property}' on entity type '{entityType}' is configured to use 'SequenceHiLo' value generator, which is only intended for keys. If this was intentional, configure an alternate key on the property, otherwise call 'ValueGeneratedNever' or configure store generation for this property. /// public static string NonKeyValueGeneration([CanBeNull] object property, [CanBeNull] object entityType) => string.Format( @@ -204,7 +204,7 @@ public static string SequenceBadType([CanBeNull] object property, [CanBeNull] ob property, entityType, propertyType); /// - /// An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseSqlServer' call. + /// An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call. /// public static string TransientExceptionDetected => GetString("TransientExceptionDetected"); @@ -236,7 +236,7 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.SqlServer.Properties.SqlServerStrings", typeof(SqlServerResources).Assembly); /// - /// The property '{property}' on entity type '{entityType}' is of type 'byte', but is set up to use a SQL Server identity column. This requires that values starting at 255 and counting down will be used for temporary key values. A temporary key value is needed for every entity inserted in a single call to 'SaveChanges'. Care must be taken that these values do not collide with real key values. + /// The property '{property}' on entity type '{entityType}' is of type 'byte', but is set up to use a SQL Server identity column; this requires that values starting at 255 and counting down will be used for temporary key values. A temporary key value is needed for every entity inserted in a single call to 'SaveChanges'. Care must be taken that these values do not collide with real key values. /// public static EventDefinition LogByteIdentityColumn([NotNull] IDiagnosticsLogger logger) { @@ -260,7 +260,7 @@ public static EventDefinition LogByteIdentityColumn([NotNull] ID } /// - /// Both the SqlServerValueGenerationStrategy '{generationStrategy}' and '{otherGenerationStrategy}' have been set on property '{propertyName}' on entity type '{entityName}'. Usually this is a mistake. Only use these at the same time if you are sure you understand the consequences. + /// Both the SqlServerValueGenerationStrategy '{generationStrategy}' and '{otherGenerationStrategy}' have been set on property '{propertyName}' on entity type '{entityName}'. Configuring two strategies is usually unintentional, only do this if you are sure you understand the consequences. /// public static EventDefinition LogConflictingValueGenerationStrategies([NotNull] IDiagnosticsLogger logger) { @@ -284,7 +284,7 @@ public static EventDefinition LogConflictingValu } /// - /// The decimal property '{property}' is part of a key on entity type '{entityType}'. If the configured precision and scale don't match the column type in the database this will cause values to be silently truncated if they do not fit in the default precision and scale. Consider using a different property as the key or make sure that the database column type matches the model configuration and enable decimal rounding warnings using 'SET NUMERIC_ROUNDABORT ON'. + /// The decimal property '{property}' is part of a key on entity type '{entityType}'. If the configured precision and scale don't match the column type in the database, this will cause values to be silently truncated if they do not fit in the default precision and scale. Consider using a different property as the key, or make sure that the database column type matches the model configuration and enable decimal rounding warnings using 'SET NUMERIC_ROUNDABORT ON'. /// public static EventDefinition LogDecimalTypeKey([NotNull] IDiagnosticsLogger logger) { @@ -308,7 +308,7 @@ public static EventDefinition LogDecimalTypeKey([NotNull] IDiagn } /// - /// No type was specified for the decimal property '{property}' on entity type '{entityType}'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType()', specify precision and scale using 'HasPrecision()' or configure a value converter using 'HasConversion()'. + /// No type was specified for the decimal property '{property}' on entity type '{entityType}'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'. /// public static EventDefinition LogDefaultDecimalTypeColumn([NotNull] IDiagnosticsLogger logger) { @@ -377,7 +377,7 @@ public static EventDefinition LogFoundDefaultSchema([NotNull] IDiagnosti } /// - /// Found foreign key on table: {tableName}, name: {foreignKeyName}, principal table: {principalTableName}, delete action: {deleteAction}. + /// Found foreign key on table '{tableName}' with name '{foreignKeyName}', principal table '{principalTableName}', delete action {deleteAction}. /// public static EventDefinition LogFoundForeignKey([NotNull] IDiagnosticsLogger logger) { @@ -401,7 +401,7 @@ public static EventDefinition LogFoundForeignKey } /// - /// Found index with name: {indexName}, table: {tableName}, is unique: {unique}. + /// Found index on table '{tableName}' with name '{indexName}', is unique: {isUnique}. /// public static EventDefinition LogFoundIndex([NotNull] IDiagnosticsLogger logger) { @@ -425,7 +425,7 @@ public static EventDefinition LogFoundIndex([NotNull] IDia } /// - /// Found primary key with name: {primaryKeyName}, table: {tableName}. + /// Found primary key on table '{tableName}' with name '{primaryKeyName}'. /// public static EventDefinition LogFoundPrimaryKey([NotNull] IDiagnosticsLogger logger) { @@ -449,7 +449,7 @@ public static EventDefinition LogFoundPrimaryKey([NotNull] IDiag } /// - /// Found sequence name: {name}, data type: {dataType}, cyclic: {cyclic}, increment: {increment}, start: {start}, minimum: {min}, maximum: {max}. + /// Found sequence with '{name}', data type: {dataType}, cyclic: {isCyclic}, increment: {increment}, start: {start}, minimum: {min}, maximum: {max}. /// public static FallbackEventDefinition LogFoundSequence([NotNull] IDiagnosticsLogger logger) { @@ -470,7 +470,7 @@ public static FallbackEventDefinition LogFoundSequence([NotNull] IDiagnosticsLog } /// - /// Found table with name: {name}. + /// Found table with name '{name}'. /// public static EventDefinition LogFoundTable([NotNull] IDiagnosticsLogger logger) { @@ -494,7 +494,7 @@ public static EventDefinition LogFoundTable([NotNull] IDiagnosticsLogger } /// - /// Found type alias with name: {alias} which maps to underlying data type {dataType}. + /// Found type alias with name '{alias}' which maps to underlying data type {dataType}. /// public static EventDefinition LogFoundTypeAlias([NotNull] IDiagnosticsLogger logger) { @@ -518,7 +518,7 @@ public static EventDefinition LogFoundTypeAlias([NotNull] IDiagn } /// - /// Found unique constraint with name: {uniqueConstraintName}, table: {tableName}. + /// Found unique constraint on table '{tableName}' with name '{uniqueConstraintName}'. /// public static EventDefinition LogFoundUniqueConstraint([NotNull] IDiagnosticsLogger logger) { @@ -590,7 +590,7 @@ public static EventDefinition LogMissingTable([NotNull] IDiagnosticsLogg } /// - /// Skipping foreign key '{foreignKeyName}' on table '{tableName}' since the principal column called '{principalColumnName}' on the foreign key's principal table, '{principalTableName}' was not found in the model. + /// Skipping foreign key with identity '{id}' on table '{tableName}', since the principal column '{principalColumnName}' on the foreign key's principal table, '{principalTableName}', was not found in the model. /// public static EventDefinition LogPrincipalColumnNotFound([NotNull] IDiagnosticsLogger logger) { @@ -614,7 +614,7 @@ public static EventDefinition LogPrincipalColumn } /// - /// Skipping foreign key '{foreignKeyName}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens if the principal table was not included in the selection set. + /// Skipping foreign key '{foreignKeyName}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens when the principal table was not included in the selection set. /// public static EventDefinition LogPrincipalTableNotInSelectionSet([NotNull] IDiagnosticsLogger logger) { diff --git a/src/EFCore.SqlServer/Properties/SqlServerStrings.resx b/src/EFCore.SqlServer/Properties/SqlServerStrings.resx index c87874c0757..a9f61c32880 100644 --- a/src/EFCore.SqlServer/Properties/SqlServerStrings.resx +++ b/src/EFCore.SqlServer/Properties/SqlServerStrings.resx @@ -121,37 +121,37 @@ To change the IDENTITY property of a column, the column needs to be dropped and recreated. - To set memory-optimized on a table on or off the table needs to be dropped and recreated. + To change the memory-optimized setting on a table, the table needs to be dropped and recreated. - When generating migrations SQL for {operation}, can't produce unterminated SQL with comments. + Can't produce unterminated SQL with comments when generating migrations SQL for {operation}, . - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different identity increment. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different identity increment values. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different identity seed. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different identity seed values. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different value generation strategies. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different value generation strategies. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different hi-lo sequences. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different hi-lo sequences. - The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different clustered configuration. + The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different clustered configurations. - The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different fill factor configuration. + The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different fill factor configurations. - The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different included columns {includedColumns1} and {includedColumns2}. + The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different included columns: {includedColumns1} and {includedColumns2}. - The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}' but with different online configuration. + The indexes {index1} on '{entityType1}' and {index2} on '{entityType2}' are both mapped to '{table}.{indexName}', but with different online configurations. - The keys {key1} on '{entityType1}' and {key2} on '{entityType2}' are both mapped to '{table}.{keyName}' but with different clustering. + The keys {key1} on '{entityType1}' and {key2} on '{entityType2}' are both mapped to '{table}.{keyName}', but with different clustering configurations. Identity value generation cannot be used for the property '{property}' on entity type '{entityType}' because the property type is '{propertyType}'. Identity value generation can only be used with signed integer properties. @@ -172,25 +172,25 @@ SQL Server requires the table name to be specified for rename index operations. Specify table name in the call to 'MigrationBuilder.RenameIndex'. - The expression passed to the 'propertyReference' parameter of the 'FreeText' method is not a valid reference to a property. The expression should represent a reference to a full-text indexed property on the object referenced in the from clause: 'from e in context.Entities where EF.Functions.FreeText(e.SomeProperty, textToSearchFor) select e' + The expression passed to the 'propertyReference' parameter of the 'FreeText' method is not a valid reference to a property. The expression must represent a reference to a full-text indexed property on the object referenced in the from clause: 'from e in context.Entities where EF.Functions.FreeText(e.SomeProperty, textToSearchFor) select e' The specified table '{table}' is not in a valid format. Specify tables using the format '[schema].[table]'. - The property '{property}' on entity type '{entityType}' is of type 'byte', but is set up to use a SQL Server identity column. This requires that values starting at 255 and counting down will be used for temporary key values. A temporary key value is needed for every entity inserted in a single call to 'SaveChanges'. Care must be taken that these values do not collide with real key values. + The property '{property}' on entity type '{entityType}' is of type 'byte', but is set up to use a SQL Server identity column; this requires that values starting at 255 and counting down will be used for temporary key values. A temporary key value is needed for every entity inserted in a single call to 'SaveChanges'. Care must be taken that these values do not collide with real key values. Warning SqlServerEventId.ByteIdentityColumnWarning string string - Both the SqlServerValueGenerationStrategy '{generationStrategy}' and '{otherGenerationStrategy}' have been set on property '{propertyName}' on entity type '{entityName}'. Usually this is a mistake. Only use these at the same time if you are sure you understand the consequences. + Both the SqlServerValueGenerationStrategy '{generationStrategy}' and '{otherGenerationStrategy}' have been set on property '{propertyName}' on entity type '{entityName}'. Configuring two strategies is usually unintentional, only do this if you are sure you understand the consequences. Warning SqlServerEventId.ConflictingValueGenerationStrategiesWarning string string string string - The decimal property '{property}' is part of a key on entity type '{entityType}'. If the configured precision and scale don't match the column type in the database this will cause values to be silently truncated if they do not fit in the default precision and scale. Consider using a different property as the key or make sure that the database column type matches the model configuration and enable decimal rounding warnings using 'SET NUMERIC_ROUNDABORT ON'. + The decimal property '{property}' is part of a key on entity type '{entityType}'. If the configured precision and scale don't match the column type in the database, this will cause values to be silently truncated if they do not fit in the default precision and scale. Consider using a different property as the key, or make sure that the database column type matches the model configuration and enable decimal rounding warnings using 'SET NUMERIC_ROUNDABORT ON'. Warning SqlServerEventId.DecimalTypeKeyWarning string string - No type was specified for the decimal property '{property}' on entity type '{entityType}'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType()', specify precision and scale using 'HasPrecision()' or configure a value converter using 'HasConversion()'. + No type was specified for the decimal property '{property}' on entity type '{entityType}'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values in 'OnModelCreating' using 'HasColumnType', specify precision and scale using 'HasPrecision', or configure a value converter using 'HasConversion'. Warning SqlServerEventId.DecimalTypeDefaultWarning string string @@ -202,31 +202,31 @@ Debug SqlServerEventId.DefaultSchemaFound string - Found foreign key on table: {tableName}, name: {foreignKeyName}, principal table: {principalTableName}, delete action: {deleteAction}. + Found foreign key on table '{tableName}' with name '{foreignKeyName}', principal table '{principalTableName}', delete action {deleteAction}. Debug SqlServerEventId.ForeignKeyFound string string string string - Found index with name: {indexName}, table: {tableName}, is unique: {unique}. + Found index on table '{tableName}' with name '{indexName}', is unique: {isUnique}. Debug SqlServerEventId.IndexFound string string bool - Found primary key with name: {primaryKeyName}, table: {tableName}. + Found primary key on table '{tableName}' with name '{primaryKeyName}'. Debug SqlServerEventId.PrimaryKeyFound string string - Found sequence name: {name}, data type: {dataType}, cyclic: {cyclic}, increment: {increment}, start: {start}, minimum: {min}, maximum: {max}. + Found sequence with '{name}', data type: {dataType}, cyclic: {isCyclic}, increment: {increment}, start: {start}, minimum: {min}, maximum: {max}. Debug SqlServerEventId.SequenceFound string string bool int long long long - Found table with name: {name}. + Found table with name '{name}'. Debug SqlServerEventId.TableFound string - Found type alias with name: {alias} which maps to underlying data type {dataType}. + Found type alias with name '{alias}' which maps to underlying data type {dataType}. Debug SqlServerEventId.TypeAliasFound string string - Found unique constraint with name: {uniqueConstraintName}, table: {tableName}. + Found unique constraint on table '{tableName}' with name '{uniqueConstraintName}'. Debug SqlServerEventId.UniqueConstraintFound string string @@ -238,11 +238,11 @@ Warning SqlServerEventId.MissingTableWarning string - Skipping foreign key '{foreignKeyName}' on table '{tableName}' since the principal column called '{principalColumnName}' on the foreign key's principal table, '{principalTableName}' was not found in the model. + Skipping foreign key with identity '{id}' on table '{tableName}', since the principal column '{principalColumnName}' on the foreign key's principal table, '{principalTableName}', was not found in the model. Warning SqlServerEventId.ForeignKeyPrincipalColumnMissingWarning string string string string - Skipping foreign key '{foreignKeyName}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens if the principal table was not included in the selection set. + Skipping foreign key '{foreignKeyName}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens when the principal table was not included in the selection set. Warning SqlServerEventId.ForeignKeyReferencesMissingPrincipalTableWarning string string string @@ -250,18 +250,18 @@ Debug SqlServerEventId.ReflexiveConstraintIgnored string string - The properties {properties} are configured to use 'Identity' value generator and are mapped to the same table '{table}'. Only one column per table can be configured as 'Identity'. Call 'ValueGeneratedNever' for properties that should not use 'Identity'. + The properties {properties} are configured to use 'Identity' value generation and are mapped to the same table '{table}', but only one column per table can be configured as 'Identity'. Call 'ValueGeneratedNever' for properties that should not use 'Identity'. - The database name could not be determined. To use EnsureDeleted, the connection string must specify Initial Catalog. + The database name could not be determined. To use 'EnsureDeleted', the connection string must specify 'Initial Catalog'. - The property '{property}' on entity type '{entityType}' is configured to use 'SequenceHiLo' value generator, which is only intended for keys. If this was intentional configure an alternate key on the property, otherwise call 'ValueGeneratedNever' or configure store generation for this property. + The property '{property}' on entity type '{entityType}' is configured to use 'SequenceHiLo' value generator, which is only intended for keys. If this was intentional, configure an alternate key on the property, otherwise call 'ValueGeneratedNever' or configure store generation for this property. SQL Server sequences cannot be used to generate values for the property '{property}' on entity type '{entityType}' because the property type is '{propertyType}'. Sequences can only be used with integer properties. - An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseSqlServer' call. + An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call. - \ No newline at end of file + diff --git a/src/EFCore.Sqlite.Core/Properties/SqliteStrings.Designer.cs b/src/EFCore.Sqlite.Core/Properties/SqliteStrings.Designer.cs index e9fa97632a9..65d498baf40 100644 --- a/src/EFCore.Sqlite.Core/Properties/SqliteStrings.Designer.cs +++ b/src/EFCore.Sqlite.Core/Properties/SqliteStrings.Designer.cs @@ -22,7 +22,7 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.Sqlite.Properties.SqliteStrings", typeof(SqliteStrings).Assembly); /// - /// SQLite cannot apply aggregate operator '{aggregateOperator}' on expression of type '{type}'. Convert the values to a supported type or use LINQ to Objects to aggregate the results. + /// SQLite cannot apply aggregate operator '{aggregateOperator}' on expressions of type '{type}'. Convert the values to a supported type, or use LINQ to Objects to aggregate the results on the client side. /// public static string AggregateOperationNotSupported([CanBeNull] object aggregateOperator, [CanBeNull] object type) => string.Format( @@ -30,13 +30,13 @@ public static string AggregateOperationNotSupported([CanBeNull] object aggregate aggregateOperator, type); /// - /// Translating this query requires APPLY operation in SQL which is not supported on SQLite. + /// Translating this query requires the SQL APPLY operation, which is not supported on SQLite. /// public static string ApplyNotSupported => GetString("ApplyNotSupported"); /// - /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different SRIDs. + /// '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different SRIDs. /// public static string DuplicateColumnNameSridMismatch([CanBeNull] object entityType1, [CanBeNull] object property1, [CanBeNull] object entityType2, [CanBeNull] object property2, [CanBeNull] object columnName, [CanBeNull] object table) => string.Format( @@ -52,13 +52,13 @@ public static string InvalidMigrationOperation([CanBeNull] object operation) operation); /// - /// Generating idempotent scripts for migration is not currently supported by SQLite. For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. + /// Generating idempotent scripts for migrations is not currently supported for SQLite. For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. /// public static string MigrationScriptGenerationNotSupported => GetString("MigrationScriptGenerationNotSupported"); /// - /// SQLite cannot order by expressions of type '{type}'. Convert the values to a supported type or use LINQ to Objects to order the results. + /// SQLite does not support expressions of type '{type}' in ORDER BY clauses. Convert the values to a supported type, or use LINQ to Objects to order the results on the client side. /// public static string OrderByNotSupported([CanBeNull] object type) => string.Format( @@ -98,7 +98,7 @@ private static readonly ResourceManager _resourceManager = new ResourceManager("Microsoft.EntityFrameworkCore.Sqlite.Properties.SqliteStrings", typeof(SqliteResources).Assembly); /// - /// Skipping foreign key with identity '{id}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens if the principal table was not included in the selection set. + /// Skipping foreign key with identity '{id}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens when the principal table was not included in the selection set. /// public static EventDefinition LogForeignKeyScaffoldErrorPrincipalTableNotFound([NotNull] IDiagnosticsLogger logger) { @@ -122,7 +122,7 @@ public static EventDefinition LogForeignKeyScaffoldError } /// - /// Found column on table: {tableName}, column name: {columnName}, data type: {dataType}, not nullable: {notNullable}, default value: {defaultValue}. + /// Found column on table '{tableName}' with name: '{columnName}', data type: {dataType}, not nullable: {notNullable}, default value: {defaultValue}. /// public static EventDefinition LogFoundColumn([NotNull] IDiagnosticsLogger logger) { @@ -146,7 +146,7 @@ public static EventDefinition LogFoundColu } /// - /// Found foreign key on table: {tableName}, id: {id}, principal table: {principalTableName}, delete action: {deleteAction}. + /// Found foreign key on table '{tableName}', id: {id}, principal table: {principalTableName}, delete action: {deleteAction}. /// public static EventDefinition LogFoundForeignKey([NotNull] IDiagnosticsLogger logger) { @@ -170,7 +170,7 @@ public static EventDefinition LogFoundForeignKey([ } /// - /// Found index with name: {indexName}, table: {tableName}, is unique: {unique}. + /// Found index on table '{tableName}' with name '{indexName}', is unique: {isUnique}. /// public static EventDefinition LogFoundIndex([NotNull] IDiagnosticsLogger logger) { @@ -194,7 +194,7 @@ public static EventDefinition LogFoundForeignKey([ } /// - /// Found primary key with name: {primaryKeyName}, table: {tableName}. + /// Found primary key on table '{tableName}' with name {primaryKeyName}. /// public static EventDefinition LogFoundPrimaryKey([NotNull] IDiagnosticsLogger logger) { @@ -218,7 +218,7 @@ public static EventDefinition LogFoundPrimaryKey([NotNull] IDiag } /// - /// Found table with name: {name}. + /// Found table with name: '{name}'. /// public static EventDefinition LogFoundTable([NotNull] IDiagnosticsLogger logger) { @@ -242,7 +242,7 @@ public static EventDefinition LogFoundTable([NotNull] IDiagnosticsLogger } /// - /// Found unique constraint with name: {uniqueConstraintName}, table: {tableName}. + /// Found unique constraint on table '{tableName}' with name: {uniqueConstraintName}. /// public static EventDefinition LogFoundUniqueConstraint([NotNull] IDiagnosticsLogger logger) { @@ -266,7 +266,7 @@ public static EventDefinition LogFoundUniqueConstraint([NotNull] } /// - /// Unable to find a table in the database matching the selected table {table}. + /// Unable to find a table in the database matching the selected table '{table}'. /// public static EventDefinition LogMissingTable([NotNull] IDiagnosticsLogger logger) { @@ -290,7 +290,7 @@ public static EventDefinition LogMissingTable([NotNull] IDiagnosticsLogg } /// - /// Skipping foreign key with identity '{id}' on table '{tableName}' since the principal column called '{principalColumnName}' on the foreign key's principal table, '{principalTableName}' was not found in the model. + /// Skipping foreign key with identity '{id}' on table '{tableName}', since the principal column '{principalColumnName}' on the foreign key's principal table, '{principalTableName}', was not found in the model. /// public static EventDefinition LogPrincipalColumnNotFound([NotNull] IDiagnosticsLogger logger) { @@ -314,7 +314,7 @@ public static EventDefinition LogPrincipalColumn } /// - /// The entity type '{entityType}' is configured to use schema '{schema}'. SQLite does not support schemas. This configuration will be ignored by the SQLite provider. + /// The entity type '{entityType}' is configured to use schema '{schema}', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider. /// public static EventDefinition LogSchemaConfigured([NotNull] IDiagnosticsLogger logger) { @@ -362,7 +362,7 @@ public static EventDefinition LogSequenceConfigured([NotNull] IDiagnosti } /// - /// Warning, an operation of type '{operationType}' will be attempted while a rebuild of table '{tableName}' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. + /// An operation of type '{operationType}' will be attempted while a rebuild of table '{tableName}' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. /// public static EventDefinition LogTableRebuildPendingWarning([NotNull] IDiagnosticsLogger logger) { diff --git a/src/EFCore.Sqlite.Core/Properties/SqliteStrings.resx b/src/EFCore.Sqlite.Core/Properties/SqliteStrings.resx index 3977a7098e0..6ad64a8f861 100644 --- a/src/EFCore.Sqlite.Core/Properties/SqliteStrings.resx +++ b/src/EFCore.Sqlite.Core/Properties/SqliteStrings.resx @@ -118,55 +118,55 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - SQLite cannot apply aggregate operator '{aggregateOperator}' on expression of type '{type}'. Convert the values to a supported type or use LINQ to Objects to aggregate the results. + SQLite cannot apply aggregate operator '{aggregateOperator}' on expressions of type '{type}'. Convert the values to a supported type, or use LINQ to Objects to aggregate the results on the client side. - Translating this query requires APPLY operation in SQL which is not supported on SQLite. + Translating this query requires the SQL APPLY operation, which is not supported on SQLite. - '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}' but are configured with different SRIDs. + '{entityType1}.{property1}' and '{entityType2}.{property2}' are both mapped to column '{columnName}' in '{table}', but are configured with different SRIDs. SQLite does not support this migration operation ('{operation}'). For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. - Skipping foreign key with identity '{id}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens if the principal table was not included in the selection set. + Skipping foreign key with identity '{id}' on table '{tableName}' since principal table '{principalTableName}' was not found in the model. This usually happens when the principal table was not included in the selection set. Warning SqliteEventId.ForeignKeyReferencesMissingTableWarning string string string - Found column on table: {tableName}, column name: {columnName}, data type: {dataType}, not nullable: {notNullable}, default value: {defaultValue}. + Found column on table '{tableName}' with name: '{columnName}', data type: {dataType}, not nullable: {notNullable}, default value: {defaultValue}. Debug SqliteEventId.ColumnFound string string string bool string - Found foreign key on table: {tableName}, id: {id}, principal table: {principalTableName}, delete action: {deleteAction}. + Found foreign key on table '{tableName}', id: {id}, principal table: {principalTableName}, delete action: {deleteAction}. Debug SqliteEventId.ForeignKeyFound string long string string - Found index with name: {indexName}, table: {tableName}, is unique: {unique}. + Found index on table '{tableName}' with name '{indexName}', is unique: {isUnique}. Debug SqliteEventId.IndexFound string string bool? - Found primary key with name: {primaryKeyName}, table: {tableName}. + Found primary key on table '{tableName}' with name {primaryKeyName}. Debug SqliteEventId.PrimaryKeyFound string string - Found table with name: {name}. + Found table with name: '{name}'. Debug SqliteEventId.TableFound string - Found unique constraint with name: {uniqueConstraintName}, table: {tableName}. + Found unique constraint on table '{tableName}' with name: {uniqueConstraintName}. Debug SqliteEventId.UniqueConstraintFound string string - Unable to find a table in the database matching the selected table {table}. + Unable to find a table in the database matching the selected table '{table}'. Warning SqliteEventId.MissingTableWarning string - Skipping foreign key with identity '{id}' on table '{tableName}' since the principal column called '{principalColumnName}' on the foreign key's principal table, '{principalTableName}' was not found in the model. + Skipping foreign key with identity '{id}' on table '{tableName}', since the principal column '{principalColumnName}' on the foreign key's principal table, '{principalTableName}', was not found in the model. Warning SqliteEventId.ForeignKeyPrincipalColumnMissingWarning string string string string - The entity type '{entityType}' is configured to use schema '{schema}'. SQLite does not support schemas. This configuration will be ignored by the SQLite provider. + The entity type '{entityType}' is configured to use schema '{schema}', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider. Warning SqliteEventId.SchemaConfiguredWarning string string @@ -174,7 +174,7 @@ Warning SqliteEventId.SequenceConfiguredWarning string - Warning, an operation of type '{operationType}' will be attempted while a rebuild of table '{tableName}' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. + An operation of type '{operationType}' will be attempted while a rebuild of table '{tableName}' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. Warning SqliteEventId.TableRebuildPendingWarning string string @@ -186,12 +186,12 @@ Warning SqliteEventId.SchemasNotSupportedWarning - Generating idempotent scripts for migration is not currently supported by SQLite. For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. + Generating idempotent scripts for migrations is not currently supported for SQLite. For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. - SQLite cannot order by expressions of type '{type}'. Convert the values to a supported type or use LINQ to Objects to order the results. + SQLite does not support expressions of type '{type}' in ORDER BY clauses. Convert the values to a supported type, or use LINQ to Objects to order the results on the client side. SQLite does not support sequences. For more information, see http://go.microsoft.com/fwlink/?LinkId=723262. - \ No newline at end of file + diff --git a/src/EFCore/Properties/CoreStrings.Designer.cs b/src/EFCore/Properties/CoreStrings.Designer.cs index f552c6b43fe..859b9eb0d17 100644 --- a/src/EFCore/Properties/CoreStrings.Designer.cs +++ b/src/EFCore/Properties/CoreStrings.Designer.cs @@ -187,6 +187,7 @@ public static string BadValueGeneratorType([CanBeNull] object givenType, [CanBeN /// /// The current database provider has not implemented the 'CanConnect' method. /// + [Obsolete] public static string CanConnectNotImplemented => GetString("CanConnectNotImplemented"); @@ -413,7 +414,7 @@ public static string CompositePKWithDataAnnotation([CanBeNull] object entityType entityType); /// - /// A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913. + /// A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913. /// public static string ConcurrentMethodInvocation => GetString("ConcurrentMethodInvocation"); @@ -683,7 +684,7 @@ public static string DuplicateNamedIndex([CanBeNull] object indexName, [CanBeNul indexName, indexProperties, entityType, duplicateEntityType); /// - /// The type '{entityType}' cannot have base type '{baseType}' because the properties '{derivedPropertyType}.{derivedProperty}' and '{basePropertyType}.{baseProperty}' are conflicting. + /// The type '{entityType}' cannot have base type '{baseType}' because the properties '{derivedPropertyType}.{derivedProperty}' and '{basePropertyType}.{baseProperty}' are in conflict. /// public static string DuplicatePropertiesOnBase([CanBeNull] object entityType, [CanBeNull] object baseType, [CanBeNull] object derivedPropertyType, [CanBeNull] object derivedProperty, [CanBeNull] object basePropertyType, [CanBeNull] object baseProperty) => string.Format( @@ -943,7 +944,7 @@ public static string ForeignKeyReferencedEntityKeyMismatch([CanBeNull] object pr principalKeyProperties, principalEntityType); /// - /// The foreign keys on entity type '{dependentType}' cannot target the same entity type because it is a weak entity type. + /// The foreign keys on entity type '{dependentType}' cannot target the same entity type because it has a defining navigation. /// public static string ForeignKeySelfReferencingDependentEntityType([CanBeNull] object dependentType) => string.Format( @@ -951,7 +952,7 @@ public static string ForeignKeySelfReferencingDependentEntityType([CanBeNull] ob dependentType); /// - /// The types of the properties specified for the foreign key {foreignKeyProperties} on entity type '{dependentType}' do not match the types of the properties in the principal key {principalKeyProperties} on entity type '{principalType}'. Provide properties that use the same types in the same order. + /// The types of the properties specified for the foreign key {foreignKeyProperties} on entity type '{dependentType}' do not match the types of the properties in the principal key {principalKeyProperties} on entity type '{principalType}'. Provide properties that use the same types in the same order. /// public static string ForeignKeyTypeMismatch([CanBeNull] object foreignKeyProperties, [CanBeNull] object dependentType, [CanBeNull] object principalKeyProperties, [CanBeNull] object principalType) => string.Format( @@ -2194,7 +2195,7 @@ public static string QueryUnableToTranslateStringEqualsWithStringComparison => GetString("QueryUnableToTranslateStringEqualsWithStringComparison"); /// - /// An attempt was made to use the context while it is being configured. A DbContext instance cannot be used inside 'OnConfiguring' since it is still being configured at this point. This can happen if a second operation is started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe. + /// An attempt was made to use the context instance while it is being configured. A DbContext instance cannot be used inside 'OnConfiguring' since it is still being configured at this point. This can happen if a second operation is started on this context instance before a previous operation completed. Any instance members are not guaranteed to be thread safe. /// public static string RecursiveOnConfiguring => GetString("RecursiveOnConfiguring"); @@ -2702,7 +2703,7 @@ public static string WarningAsErrorTemplate([CanBeNull] object eventName, [CanBe eventName, message, eventId); /// - /// The type '{entityType}' cannot have weak entity type '{baseType}' as the base type. + /// The type '{entityType}' cannot have entity type '{baseType}' as the base type because the latter has a defining navigation. /// public static string WeakBaseType([CanBeNull] object entityType, [CanBeNull] object baseType) => string.Format( @@ -2710,7 +2711,7 @@ public static string WeakBaseType([CanBeNull] object entityType, [CanBeNull] obj entityType, baseType); /// - /// The weak entity type '{entityType}' cannot have a base type. + /// The entity type '{entityType}' cannot have a base type because it has a defining navigation. /// public static string WeakDerivedType([CanBeNull] object entityType) => string.Format( @@ -3144,7 +3145,7 @@ public static EventDefinition LogDetectChangesStarting([NotNull] IDiagno } /// - /// The same entity is being tracked as different weak entity types '{dependent1}' and '{dependent2}'. If a property value changes, it will result in two store changes, which might not be the desired outcome. + /// The same entity is being tracked as different entity types '{dependent1}' and '{dependent2}' with defining navigations. If a property value changes, it will result in two store changes, which might not be the desired outcome. /// public static EventDefinition LogDuplicateDependentEntityTypeInstance([NotNull] IDiagnosticsLogger logger) { diff --git a/src/EFCore/Properties/CoreStrings.resx b/src/EFCore/Properties/CoreStrings.resx index d473d4109dd..753fe7c41b6 100644 --- a/src/EFCore/Properties/CoreStrings.resx +++ b/src/EFCore/Properties/CoreStrings.resx @@ -179,6 +179,7 @@ The current database provider has not implemented the 'CanConnect' method. + Obsolete The property '{1_entityType}.{0_property}' cannot be marked as nullable/optional because the type of the property is '{propertyType}' which is not a nullable type. Any property can be marked as non-nullable/required, but only properties of nullable types can be marked as nullable/optional. @@ -265,7 +266,7 @@ The entity type '{entityType}' has multiple properties with the [Key] attribute. Composite primary keys can only be set using 'HasKey' in 'OnModelCreating'. - A second operation was started on this context before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913. + A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913. Property '{1_entityType}.{0_property}' matches both '{field1}' and '{field2}' by convention. Explicitly specify the backing field to use with 'HasField' in 'OnModelCreating'. @@ -370,7 +371,7 @@ The index named '{indexName}' defined on properties {indexProperties} cannot be added to the entity type '{entityType}' because an index with the same name already exists on entity type '{duplicateEntityType}'. - The type '{entityType}' cannot have base type '{baseType}' because the properties '{derivedPropertyType}.{derivedProperty}' and '{basePropertyType}.{baseProperty}' are conflicting. + The type '{entityType}' cannot have base type '{baseType}' because the properties '{derivedPropertyType}.{derivedProperty}' and '{basePropertyType}.{baseProperty}' are in conflict. The properties {propertyList} cannot be used for a foreign key, because they contain a duplicate: '{property}'. @@ -469,7 +470,7 @@ The provided principal key {principalKeyProperties} is not a key on the entity type '{principalEntityType}'. Provide a key that's defined on the principal entity type. - The foreign keys on entity type '{dependentType}' cannot target the same entity type because it is a weak entity type. + The foreign keys on entity type '{dependentType}' cannot target the same entity type because it has a defining navigation. The types of the properties specified for the foreign key {foreignKeyProperties} on entity type '{dependentType}' do not match the types of the properties in the principal key {principalKeyProperties} on entity type '{principalType}'. Provide properties that use the same types in the same order. @@ -726,7 +727,7 @@ Debug CoreEventId.DetectChangesStarting string - The same entity is being tracked as different weak entity types '{dependent1}' and '{dependent2}'. If a property value changes, it will result in two store changes, which might not be the desired outcome. + The same entity is being tracked as different entity types '{dependent1}' and '{dependent2}' with defining navigations. If a property value changes, it will result in two store changes, which might not be the desired outcome. Warning CoreEventId.DuplicateDependentEntityTypeInstanceWarning string string @@ -1247,7 +1248,7 @@ Translation of the 'string.Equals' overload with a 'StringComparison' parameter is not supported. See https://go.microsoft.com/fwlink/?linkid=2129535 for more information. - An attempt was made to use the context while it is being configured. A DbContext instance cannot be used inside 'OnConfiguring' since it is still being configured at this point. This can happen if a second operation is started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe. + An attempt was made to use the context instance while it is being configured. A DbContext instance cannot be used inside 'OnConfiguring' since it is still being configured at this point. This can happen if a second operation is started on this context instance before a previous operation completed. Any instance members are not guaranteed to be thread safe. An attempt was made to use the model while it was being created. A DbContext instance cannot be used inside 'OnModelCreating' in any way that makes use of the model that is being created. @@ -1445,10 +1446,10 @@ An error was generated for warning '{eventName}': {message} This exception can be suppressed or logged by passing event ID '{eventId}' to the 'ConfigureWarnings' method in 'DbContext.OnConfiguring' or 'AddDbContext'. - The type '{entityType}' cannot have weak entity type '{baseType}' as the base type. + The type '{entityType}' cannot have entity type '{baseType}' as the base type because the latter has a defining navigation. - The weak entity type '{entityType}' cannot have a base type. + The entity type '{entityType}' cannot have a base type because it has a defining navigation. Property '{1_entityType}.{0_property}' is of type '{actualType}' but the generic type provided is of type '{genericType}'. @@ -1456,4 +1457,4 @@ Cannot start tracking the entry for entity type '{entityType}' because it was created by a different StateManager instance. - \ No newline at end of file + diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs index 25834d76cf6..f8df3480d80 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindSplitIncludeQuerySqlServerTest.cs @@ -1,7 +1,8 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.EntityFrameworkCore.TestModels.Northwind; using Microsoft.EntityFrameworkCore.TestUtilities; using Xunit; @@ -194,7 +195,7 @@ FROM [Orders] AS [o] LEFT JOIN [Customers] AS [c] ON [o].[CustomerID] = [c].[CustomerID] ORDER BY [o].[OrderID], [c].[CustomerID] -This LINQ query is being executed in split-query mode. The SQL shown is for the first query to be executed. Additional queries may also be executed depending on the results of the first query.", +" + RelationalStrings.SplitQueryString, context.Set().Include(o => o.Customer).Include(o => o.OrderDetails).AsSplitQuery().ToQueryString(), ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); diff --git a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs index 4a6b22816ab..24ed2f1cd56 100644 --- a/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/Query/NorthwindWhereQuerySqlServerTest.cs @@ -532,7 +532,7 @@ FROM [Employees] AS [e] WHERE 0 = 1"); Assert.Contains( - "Possible unintended use of method Equals(object) for arguments 'e.EmployeeID' and '@__longPrm_0' of different types in query. This comparison will always return 'false'.", + "Possible unintended use of method 'Equals' for arguments 'e.EmployeeID' and '@__longPrm_0' of different types in a query. This comparison will always return false.", Fixture.TestSqlLoggerFactory.Log.Select(l => l.Message)); } @@ -562,10 +562,10 @@ FROM [Employees] AS [e] WHERE 0 = 1"); Assert.Contains( - "Possible unintended use of method Equals(object) for arguments 'e.ReportsTo' and '@__longPrm_0' of different types in query. This comparison will always return 'false'.", + "Possible unintended use of method 'Equals' for arguments 'e.ReportsTo' and '@__longPrm_0' of different types in a query. This comparison will always return false.", Fixture.TestSqlLoggerFactory.Log.Select(l => l.Message)); Assert.Contains( - "Possible unintended use of method Equals(object) for arguments '@__longPrm_0' and 'e.ReportsTo' of different types in query. This comparison will always return 'false'.", + "Possible unintended use of method 'Equals' for arguments '@__longPrm_0' and 'e.ReportsTo' of different types in a query. This comparison will always return false.", Fixture.TestSqlLoggerFactory.Log.Select(l => l.Message)); } @@ -583,10 +583,10 @@ FROM [Employees] AS [e] WHERE 0 = 1"); Assert.Contains( - "Possible unintended use of method Equals(object) for arguments 'e.ReportsTo' and '@__nullableLongPrm_0' of different types in query. This comparison will always return 'false'.", + "Possible unintended use of method 'Equals' for arguments 'e.ReportsTo' and '@__nullableLongPrm_0' of different types in a query. This comparison will always return false.", Fixture.TestSqlLoggerFactory.Log.Select(l => l.Message)); Assert.Contains( - "Possible unintended use of method Equals(object) for arguments '@__nullableLongPrm_0' and 'e.ReportsTo' of different types in query. This comparison will always return 'false'.", + "Possible unintended use of method 'Equals' for arguments '@__nullableLongPrm_0' and 'e.ReportsTo' of different types in a query. This comparison will always return false.", Fixture.TestSqlLoggerFactory.Log.Select(l => l.Message)); }