示例#1
0
        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);
        }
示例#2
0
        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);
        }