SchemaTableColumnTrio GetSchemaAndTableNameAndColumnName(IDbContextDependencies dependencies, Type type) { if (TableNames.TryGetValue(type, out var result) && _enableSchemaCaching) { return(result); } #pragma warning disable EF1001 var entityType = dependencies.Model.FindEntityType(type); var schema = entityType.GetSchema(); var tableName = entityType.GetTableName(); var property = entityType.GetProperties().Single(x => x.Name.Equals(nameof(ISaga.CorrelationId), StringComparison.OrdinalIgnoreCase)); var columnName = property.GetColumnName(); if (string.IsNullOrWhiteSpace(tableName)) { throw new MassTransitException($"Unable to determine saga table name: {TypeMetadataCache.GetShortName(type)} (using model metadata)."); } result = new SchemaTableColumnTrio(schema ?? DefaultSchema, tableName, columnName); if (_enableSchemaCaching) { TableNames.TryAdd(type, result); } return(result); }
SchemaTableColumnTrio GetSchemaAndTableNameAndColumnName(IDbContextDependencies dependencies, Type type) { if (TableNames.TryGetValue(type, out var result) && _enableSchemaCaching) { return(result); } var entityType = dependencies.Model.FindEntityType(type); var schema = entityType.GetSchema(); var tableName = entityType.GetTableName(); var columnName = entityType.GetProperty(nameof(ISaga.CorrelationId)).GetColumnName(); if (string.IsNullOrWhiteSpace(tableName)) { throw new MassTransitException($"Unable to determine saga table name: {TypeMetadataCache.GetShortName(type)} (using model metadata)."); } result = new SchemaTableColumnTrio(schema ?? DefaultSchema, tableName, columnName); if (_enableSchemaCaching) { TableNames.TryAdd(type, result); } return(result); }